You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2015/07/07 11:24:06 UTC

[01/26] jena git commit: Initial work on elminating assignments (JENA-780)

Repository: jena
Updated Branches:
  refs/heads/jena2 21b5e602e -> b02309f6d
  refs/heads/master 651f05311 -> 459f06935


Initial work on elminating assignments (JENA-780)

This is an initial first pass at a new optimization which aims to
eliminate single use assignments where possible.  Currently this is not
entirely working and will break some queries (those not involving an
explicit projection)


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/308810f2
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/308810f2
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/308810f2

Branch: refs/heads/jena2
Commit: 308810f273203591143ebd9c00d39077d309fa7d
Parents: 913b225
Author: Rob Vesse <rv...@apache.org>
Authored: Thu Sep 25 15:34:37 2014 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Thu Sep 25 15:35:31 2014 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 219 +++++++++++++++++++
 .../optimize/TransformRemoveAssignment.java     |  98 +++++++++
 .../algebra/optimize/VariableUsagePopper.java   |  39 ++++
 .../algebra/optimize/VariableUsagePusher.java   |  41 ++++
 .../algebra/optimize/VariableUsageTracker.java  |  74 +++++++
 .../algebra/optimize/VariableUsageVisitor.java  | 186 ++++++++++++++++
 .../algebra/optimize/TS_Optimization.java       |   1 +
 .../TestTransformEliminateAssignments.java      | 171 +++++++++++++++
 8 files changed, 829 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
new file mode 100644
index 0000000..49f8f1c
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -0,0 +1,219 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.jena.atlas.lib.CollectionUtils;
+import com.hp.hpl.jena.sparql.algebra.Op;
+import com.hp.hpl.jena.sparql.algebra.OpVisitor;
+import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
+import com.hp.hpl.jena.sparql.algebra.Transform;
+import com.hp.hpl.jena.sparql.algebra.TransformCopy;
+import com.hp.hpl.jena.sparql.algebra.Transformer;
+import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
+import com.hp.hpl.jena.sparql.algebra.op.OpExt;
+import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
+import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
+import com.hp.hpl.jena.sparql.algebra.op.OpGroup;
+import com.hp.hpl.jena.sparql.algebra.op.OpOrder;
+import com.hp.hpl.jena.sparql.algebra.op.OpProject;
+import com.hp.hpl.jena.sparql.algebra.op.OpTopN;
+import com.hp.hpl.jena.sparql.core.Var;
+import com.hp.hpl.jena.sparql.core.VarExprList;
+import com.hp.hpl.jena.sparql.expr.Expr;
+import com.hp.hpl.jena.sparql.expr.ExprList;
+import com.hp.hpl.jena.sparql.expr.ExprTransformSubstitute;
+import com.hp.hpl.jena.sparql.expr.ExprTransformer;
+import com.hp.hpl.jena.sparql.expr.ExprVars;
+
+/**
+ * A transform that tries to remove unecessary assignments
+ * <p>
+ * There are two classes of assignments that we can try and remove:
+ * </p>
+ * <ol>
+ * <li>Assignments where the assigned variable is used only once in a subsequent
+ * assignment</li>
+ * <li>Assignments where the assigned value is never used elsewhere</li>
+ * </ol>
+ * 
+ * @author rvesse
+ * 
+ */
+public class TransformEliminateAssignments extends TransformCopy {
+
+    public static Op eliminate(Op op) {
+        AssignmentTracker tracker = new AssignmentTracker();
+        VariableUsagePusher pusher = new VariableUsagePusher(tracker);
+        AssignmentPopper popper = new AssignmentPopper(tracker);
+        Transform transform = new TransformEliminateAssignments(tracker, pusher, popper);
+
+        return Transformer.transform(transform, op, pusher, popper);
+    }
+
+    private OpVisitor before, after;
+    private AssignmentTracker tracker;
+
+    private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after) {
+        this.tracker = tracker;
+        this.before = before;
+    }
+
+    @Override
+    public Op transform(OpExt opExt) {
+        return opExt.apply(this, this.before, this.after);
+    }
+
+    @Override
+    public Op transform(OpFilter opFilter, Op subOp) {
+        // See what vars are used in the filter
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opFilter.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+
+        // Are any of these vars single usage?
+        ExprList exprs = opFilter.getExprs();
+        boolean modified = false;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this filter
+            if (this.tracker.getUsageCount(var) == 2 && this.tracker.getAssignments().containsKey(var)) {
+                // Can go back and eliminate that assignment
+                subOp = Transformer.transform(
+                        new TransformRemoveAssignment(var, this.tracker.getAssignments().get(var)), subOp);
+                // Replace the variable usage with the expression
+                exprs = ExprTransformer.transform(
+                        new ExprTransformSubstitute(var, this.tracker.getAssignments().get(var)), exprs);
+                this.tracker.getAssignments().remove(var);
+                modified = true;
+            }
+        }
+
+        // Create a new filter if we've substituted any expressions
+        if (modified) {
+            return OpFilter.filter(exprs, subOp);
+        }
+
+        return super.transform(opFilter, subOp);
+    }
+
+    @Override
+    public Op transform(OpAssign opAssign, Op subOp) {
+        this.tracker.putAssignments(opAssign.getVarExprList());
+        // Note that for assign we don't eliminate instances where its value is
+        // never used because assign has different semantics to extend that
+        // means in such a case it acts more like a filter
+        return super.transform(opAssign, subOp);
+    }
+
+    @Override
+    public Op transform(OpExtend opExtend, Op subOp) {
+        this.tracker.putAssignments(opExtend.getVarExprList());
+
+        // See if there are any assignments we can eliminate entirely i.e. those
+        // where the assigned value is never used
+        VarExprList assignments = processUnused(opExtend.getVarExprList());
+        if (assignments == null)
+            return super.transform(opExtend, subOp);
+
+        // Can eliminate some assignments entirely
+        if (assignments.size() > 0) {
+            return OpExtend.extend(subOp, assignments);
+        } else {
+            return subOp;
+        }
+    }
+
+    private VarExprList processUnused(VarExprList assignments) {
+        if (CollectionUtils.disjoint(assignments.getVars(), this.tracker.getAssignments().keySet()))
+            return null;
+
+        VarExprList modified = new VarExprList();
+        for (Var var : assignments.getVars()) {
+            if (this.tracker.getUsageCount(var) > 1)
+                modified.add(var, assignments.getExpr(var));
+        }
+
+        if (modified.size() == assignments.size())
+            return null;
+        return modified;
+    }
+
+    @Override
+    public Op transform(OpOrder opOrder, Op subOp) {
+        // TODO Auto-generated method stub
+        return super.transform(opOrder, subOp);
+    }
+
+    @Override
+    public Op transform(OpTopN opTop, Op subOp) {
+        // TODO Auto-generated method stub
+        return super.transform(opTop, subOp);
+    }
+
+    @Override
+    public Op transform(OpGroup opGroup, Op subOp) {
+        // TODO Auto-generated method stub
+        return super.transform(opGroup, subOp);
+    }
+
+    private static class AssignmentTracker extends VariableUsageTracker {
+
+        private Map<Var, Expr> assignments = new HashMap<>();
+
+        public Map<Var, Expr> getAssignments() {
+            return this.assignments;
+        }
+
+        public void putAssignments(VarExprList assignments) {
+            for (Var var : assignments.getVars()) {
+                int i = getUsageCount(var);
+                if (i <= 2) {
+                    this.assignments.put(var, assignments.getExpr(var));
+                } else {
+                    this.assignments.remove(var);
+                }
+            }
+        }
+
+        @Override
+        public void increment(String var) {
+            super.increment(var);
+
+            int i = getUsageCount(var);
+            if (i > 2) {
+                this.assignments.remove(var);
+            }
+        }
+
+    }
+
+    private static class AssignmentPopper extends OpVisitorBase {
+
+        private AssignmentTracker tracker;
+
+        public AssignmentPopper(AssignmentTracker tracker) {
+            this.tracker = tracker;
+        }
+
+        @Override
+        public void visit(OpProject opProject) {
+            // Any assignments that are not projected should be discarded at
+            // this
+            // point
+            Iterator<Var> vars = tracker.getAssignments().keySet().iterator();
+            while (vars.hasNext()) {
+                Var var = vars.next();
+                if (!opProject.getVars().contains(var))
+                    vars.remove();
+            }
+            tracker.pop();
+        }
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
new file mode 100644
index 0000000..dba9271
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
@@ -0,0 +1,98 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import com.hp.hpl.jena.sparql.algebra.Op;
+import com.hp.hpl.jena.sparql.algebra.TransformCopy;
+import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
+import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
+import com.hp.hpl.jena.sparql.algebra.op.OpExtendAssign;
+import com.hp.hpl.jena.sparql.core.Var;
+import com.hp.hpl.jena.sparql.core.VarExprList;
+import com.hp.hpl.jena.sparql.expr.Expr;
+
+/**
+ * A transform capable of removing assignments from the algebra tree
+ * 
+ */
+public class TransformRemoveAssignment extends TransformCopy {
+
+    private Var var;
+    private Expr expr;
+    private boolean topmostOnly = true;
+
+    public TransformRemoveAssignment(Var var, Expr expr, boolean topmostOnly) {
+        this.var = var;
+        this.expr = expr;
+        this.topmostOnly = topmostOnly;
+    }
+
+    public TransformRemoveAssignment(Var var, Expr expr) {
+        this(var, expr, true);
+    }
+
+    @Override
+    public Op transform(OpAssign opAssign, Op subOp) {
+        VarExprList assignments = processAssignments(opAssign);
+        if (assignments == null)
+            return super.transform(opAssign, subOp);
+
+        // Rewrite appropriately
+        if (this.topmostOnly) {
+            // If topmost only ignore any transformations lower down the tree
+            // hence call getSubOp() rather than using the provided subOp
+            if (assignments.size() > 0) {
+                return OpAssign.assign(opAssign.getSubOp(), assignments);
+            } else {
+                return opAssign.getSubOp();
+            }
+        } else {
+            // Otherwise preserve any transformations from lower down the tree
+            if (assignments.size() > 0) {
+                return OpAssign.assign(subOp, assignments);
+            } else {
+                return subOp;
+            }
+        }
+    }
+
+    private VarExprList processAssignments(OpExtendAssign opAssign) {
+        VarExprList orig = opAssign.getVarExprList();
+        if (!orig.contains(this.var))
+            return null;
+        if (!orig.getExpr(this.var).equals(this.expr))
+            return null;
+
+        VarExprList modified = new VarExprList();
+        for (Var v : orig.getVars()) {
+            if (!v.equals(this.var)) {
+                modified.add(v, orig.getExpr(v));
+            }
+        }
+        return modified;
+    }
+
+    @Override
+    public Op transform(OpExtend opExtend, Op subOp) {
+        VarExprList assignments = processAssignments(opExtend);
+        if (assignments == null)
+            return super.transform(opExtend, subOp);
+
+        // Rewrite appropriately
+        if (this.topmostOnly) {
+            // If topmost only ignore any transformations lower down the tree
+            // hence call getSubOp() rather than using the provided subOp
+            if (assignments.size() > 0) {
+                return OpExtend.extend(opExtend.getSubOp(), assignments);
+            } else {
+                return opExtend.getSubOp();
+            }
+        } else {
+            // Otherwise preserve any transformations from lower down the tree
+            if (assignments.size() > 0) {
+                return OpExtend.extend(subOp, assignments);
+            } else {
+                return subOp;
+            }
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
new file mode 100644
index 0000000..e73bfee
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
@@ -0,0 +1,39 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+
+import com.hp.hpl.jena.sparql.algebra.op.OpProject;
+import com.hp.hpl.jena.sparql.core.Var;
+
+/**
+ * An after visitor for tracking variable usage
+ * 
+ */
+public class VariableUsagePopper extends VariableUsageVisitor {
+
+    public VariableUsagePopper(VariableUsageTracker tracker) {
+        super(tracker);
+    }
+
+    @Override
+    protected void action(Collection<Var> vars) {
+        this.tracker.decrement(vars);
+    }
+
+    @Override
+    protected void action(Var var) {
+        this.tracker.decrement(var);
+    }
+
+    @Override
+    protected void action(String var) {
+        this.tracker.decrement(var);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        super.visit(opProject);
+        this.tracker.pop();
+        super.visit(opProject);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
new file mode 100644
index 0000000..51a04fb
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
@@ -0,0 +1,41 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+
+import com.hp.hpl.jena.sparql.algebra.op.OpProject;
+import com.hp.hpl.jena.sparql.core.Var;
+
+/**
+ * A before visitor for tracking variable usage
+ * 
+ */
+public class VariableUsagePusher extends VariableUsageVisitor {
+
+    public VariableUsagePusher(VariableUsageTracker tracker) {
+        super(tracker);
+    }
+
+    @Override
+    protected void action(Collection<Var> vars) {
+        this.tracker.increment(vars);
+    }
+
+    @Override
+    protected void action(Var var) {
+        this.tracker.increment(var);
+    }
+
+    @Override
+    protected void action(String var) {
+        this.tracker.increment(var);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        super.visit(opProject);
+        this.tracker.push();
+        super.visit(opProject);
+    }
+
+    
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
new file mode 100644
index 0000000..f63e41e
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
@@ -0,0 +1,74 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Stack;
+
+import com.hp.hpl.jena.sparql.core.Var;
+
+/**
+ * Tracker for variable usage
+ * 
+ */
+public class VariableUsageTracker {
+
+    private Stack<Map<String, Integer>> stack = new Stack<>();
+    private Map<String, Integer> variables = new HashMap<>();
+
+    public void push() {
+        this.stack.push(this.variables);
+        this.variables = new HashMap<>();
+    }
+
+    public void pop() {
+        if (this.stack.size() == 0)
+            throw new IllegalStateException("Stack is empty");
+        this.variables = this.stack.pop();
+    }
+
+    public void increment(Collection<Var> vars) {
+        for (Var var : vars) {
+            increment(var);
+        }
+    }
+
+    public void increment(String var) {
+        if (!variables.containsKey(var)) {
+            variables.put(var, 1);
+        } else {
+            variables.put(var, variables.get(var) + 1);
+        }
+    }
+
+    public void increment(Var var) {
+        increment(var.getName());
+    }
+
+    public void decrement(Collection<Var> vars) {
+        for (Var var : vars) {
+            decrement(var);
+        }
+    }
+
+    public void decrement(String var) {
+        if (variables.containsKey(var)) {
+            variables.put(var, variables.get(var) - 1);
+            if (variables.get(var) <= 0)
+                variables.remove(var);
+        }
+    }
+
+    public void decrement(Var var) {
+        decrement(var.getName());
+    }
+
+    public int getUsageCount(String var) {
+        Integer i = variables.get(var);
+        return i != null ? i.intValue() : 0;
+    }
+
+    public int getUsageCount(Var var) {
+        return getUsageCount(var.getName());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
new file mode 100644
index 0000000..9fda1c4
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
@@ -0,0 +1,186 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.query.SortCondition;
+import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
+import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
+import com.hp.hpl.jena.sparql.algebra.op.OpBGP;
+import com.hp.hpl.jena.sparql.algebra.op.OpDatasetNames;
+import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
+import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
+import com.hp.hpl.jena.sparql.algebra.op.OpGraph;
+import com.hp.hpl.jena.sparql.algebra.op.OpGroup;
+import com.hp.hpl.jena.sparql.algebra.op.OpLeftJoin;
+import com.hp.hpl.jena.sparql.algebra.op.OpOrder;
+import com.hp.hpl.jena.sparql.algebra.op.OpPath;
+import com.hp.hpl.jena.sparql.algebra.op.OpProject;
+import com.hp.hpl.jena.sparql.algebra.op.OpPropFunc;
+import com.hp.hpl.jena.sparql.algebra.op.OpQuadBlock;
+import com.hp.hpl.jena.sparql.algebra.op.OpQuadPattern;
+import com.hp.hpl.jena.sparql.algebra.op.OpTable;
+import com.hp.hpl.jena.sparql.algebra.op.OpTopN;
+import com.hp.hpl.jena.sparql.core.Quad;
+import com.hp.hpl.jena.sparql.core.Var;
+import com.hp.hpl.jena.sparql.core.Vars;
+import com.hp.hpl.jena.sparql.expr.Expr;
+import com.hp.hpl.jena.sparql.expr.ExprVars;
+
+/**
+ * A visitor which tracks variable usage
+ * 
+ */
+public abstract class VariableUsageVisitor extends OpVisitorBase {
+
+    protected VariableUsageTracker tracker;
+
+    public VariableUsageVisitor(VariableUsageTracker tracker) {
+        this.tracker = tracker;
+    }
+
+    protected abstract void action(Collection<Var> vars);
+
+    protected abstract void action(Var var);
+
+    protected abstract void action(String var);
+    
+    @Override
+    public void visit(OpBGP opBGP) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Triple t : opBGP.getPattern().getList()) {
+            Vars.addVarsFromTriple(vars, t);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpQuadPattern quadPattern) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Quad q : quadPattern.getPattern().getList()) {
+            Vars.addVarsFromQuad(vars, q);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpQuadBlock quadBlock) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Quad q : quadBlock.getPattern().getList()) {
+            Vars.addVarsFromQuad(vars, q);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpPath opPath) {
+        if (opPath.getTriplePath().getSubject().isVariable())
+            action(opPath.getTriplePath().getSubject().getName());
+        if (opPath.getTriplePath().getObject().isVariable())
+            action(opPath.getTriplePath().getObject().getName());
+    }
+
+    @Override
+    public void visit(OpPropFunc opPropFunc) {
+        for (Node subjArg : opPropFunc.getSubjectArgs().getArgList()) {
+            if (subjArg.isVariable())
+                action(subjArg.getName());
+        }
+        for (Node objArg : opPropFunc.getObjectArgs().getArgList()) {
+            if (objArg.isVariable())
+                action(objArg.getName());
+        }
+    }
+
+    @Override
+    public void visit(OpLeftJoin opLeftJoin) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opLeftJoin.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpFilter opFilter) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opFilter.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpGraph opGraph) {
+        if (opGraph.getNode().isVariable())
+            action(opGraph.getNode().getName());
+    }
+
+    @Override
+    public void visit(OpDatasetNames dsNames) {
+        if (dsNames.getGraphNode().isVariable())
+            action(dsNames.getGraphNode().getName());
+    }
+
+    @Override
+    public void visit(OpTable opTable) {
+        action(opTable.getTable().getVars());
+    }
+
+    @Override
+    public void visit(OpAssign opAssign) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opAssign.getVarExprList().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opAssign.getVarExprList().getExpr(var));
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpExtend opExtend) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opExtend.getVarExprList().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opExtend.getVarExprList().getExpr(var));
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpOrder opOrder) {
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition condition : opOrder.getConditions()) {
+            ExprVars.varsMentioned(vars, condition);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        for (Var var : opProject.getVars()) {
+            action(var);
+        }
+    }
+
+    @Override
+    public void visit(OpGroup opGroup) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opGroup.getGroupVars().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opGroup.getGroupVars().getExpr(var));
+        }
+    }
+
+    @Override
+    public void visit(OpTopN opTop) {
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition condition : opTop.getConditions()) {
+            ExprVars.varsMentioned(vars, condition);
+        }
+        action(vars);
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
index fe3d4c4..56016fa 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
@@ -34,6 +34,7 @@ import org.junit.runners.Suite ;
     , TestTransformFilterPlacement.class
     , TestTransformMergeBGPs.class
     , TestTransformPromoteTableEmpty.class
+    , TestTransformEliminateAssignments.class
     , TestTransformTopN.class
     , TestOptimizer.class
 })

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
new file mode 100644
index 0000000..1b73d25
--- /dev/null
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -0,0 +1,171 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import org.apache.jena.atlas.lib.StrUtils;
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.hp.hpl.jena.sparql.algebra.Op;
+import com.hp.hpl.jena.sparql.sse.SSE;
+
+/**
+ * Tests for the {@link TransformEliminateAssignments}
+ * 
+ */
+public class TestTransformEliminateAssignments {
+
+    private void test(String input, String... output) {
+        Op original = SSE.parseOp(input);
+        test(original, output);
+    }
+
+    private void test(Op original, String... output) {
+        // Transform
+        Op actual = TransformEliminateAssignments.eliminate(original);
+
+        // Check results
+        if (output == null) {
+            // No transformation.
+            Assert.assertEquals(original, actual);
+        } else {
+            // Transformation expected
+            Op expected = SSE.parseOp(StrUtils.strjoinNL(output));
+            Assert.assertEquals(expected, actual);
+        }
+    }
+
+    private void testNoChange(String input) {
+        test(input, (String[]) null);
+    }
+
+    private void testNoChange(String... input) {
+        test(StrUtils.strjoinNL(input), (String[]) null);
+    }
+
+    @Test
+    public void eliminate_single_use_extend_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (extend (?x true)",
+                                "    (table unit)))"),
+             "(filter (exprlist true)",
+             "  (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void eliminate_single_use_extend_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // The other assignment is removed because it's value is never used
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (extend ((?x true) (?y false))",
+                                "    (table unit)))"),
+             "(filter (exprlist true)",
+             "    (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_extend_unchanged_01() {
+        // As the assigned variable is used multiple times we leave the
+        // assignment alone
+        //@formatter:off
+        testNoChange("(filter (> (* ?x ?x) 16)",
+                     "  (extend (?x 3)",
+                     "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_extend_unchanged_02() {
+        // Because the value of the assignment is used in multiple places we
+        // leave the assignment alone
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (join",
+                     "    (extend (?x true)",
+                     "      (table unit))",
+                     "    (bgp (triple ?x ?y ?z))))");
+        //@formatter:on
+    }
+
+    @Test
+    public void scoped_use_extend_01() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // However if the scoping means the value is never used we can instead
+        // eliminate it entirely
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (project (?y)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+            "(filter (exprlist ?x)",
+            "  (project (?y)",
+            "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void scoped_use_extend_02() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // However in this case we can substitute it in the inner scope
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (project (?y)",
+                                "    (filter (exprlist ?x)",
+                                "      (extend (?x true)",
+                                "        (table unit)))))"),
+            "(filter (exprlist ?x)",
+            "  (project (?y)",
+            "    (filter (exprlist true)",
+            "      (table unit))))");
+        //@formatter:on
+    }
+
+    @Test
+    public void eliminate_single_use_assign_01() {
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (assign (?x true)",
+                                "    (table unit)))"),
+             "(filter (exprlist true)",
+             "  (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_assign_unchanged_01() {
+        //@formatter:off
+        testNoChange("(filter (> (* ?x ?x) 16)",
+                     "  (assign (?x 3)",
+                     "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_assign_unchanged_02() {
+        // Left alone because assigned to more than once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (assign (?x true)",
+                     "    (assign (?x true)",
+                     "      (table unit))))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_assign_unchanged_03() {
+        // Left alone because assigned to more than once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (assign (?x true)",
+                     "    (assign (?x false)",
+                     "      (table unit))))");
+        //@formatter:on
+    }
+}


[09/26] jena git commit: Merge branch 'master' into eliminate-assignments

Posted by rv...@apache.org.
Merge branch 'master' into eliminate-assignments


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/57cf5dd9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/57cf5dd9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/57cf5dd9

Branch: refs/heads/master
Commit: 57cf5dd9adf21262167e12d944af32bd2b70a3a0
Parents: e1a8357 00ff878
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Feb 17 12:19:57 2015 +0000
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Feb 17 12:19:57 2015 +0000

----------------------------------------------------------------------
 .gitignore                                      |     3 +-
 NOTICE                                          |     2 +-
 apache-jena-libs/pom.xml                        |     2 +-
 apache-jena-osgi/jena-osgi-test/pom.xml         |   195 +
 .../org/apache/jena/osgi/test/JenaOSGITest.java |   209 +
 apache-jena-osgi/jena-osgi/pom.xml              |   230 +
 apache-jena-osgi/pom.xml                        |    51 +
 apache-jena/NOTICE                              |     2 +-
 apache-jena/pom.xml                             |    14 +-
 jena-arq/Grammar/arq.jj                         |    20 +-
 jena-arq/Grammar/master.jj                      |    25 +-
 jena-arq/Grammar/sparql_11.jj                   |    18 +-
 jena-arq/NOTICE                                 |     2 +-
 jena-arq/ReleaseNotes.txt                       |     4 +
 jena-arq/pom.xml                                |    20 +-
 jena-arq/rdf10                                  |    12 +
 jena-arq/rdf11                                  |    12 +
 jena-arq/src-examples/arq/examples/ExProg1.java |     9 +-
 jena-arq/src-examples/arq/examples/ExProg2.java |     9 +-
 .../arq/examples/ExQuerySelect1.java            |    22 +-
 .../arq/examples/ExQuerySelect2.java            |    11 +-
 .../arq/examples/ExampleDBpedia1.java           |    12 +-
 .../arq/examples/ExampleDBpedia2.java           |     6 +-
 .../arq/examples/ExampleDBpedia3.java           |    21 +-
 .../examples/aggregates/CustomAggregate.java    |   113 +
 .../examples/propertyfunction/labelSearch.java  |    10 +-
 .../examples/propertyfunction/localname.java    |     3 +-
 .../arq/examples/riot/ExRIOT_2.java             |    17 +-
 .../arq/examples/riot/ExRIOT_5.java             |     9 +
 jena-arq/src/main/java/arq/cmdline/CmdLARQ.java |    29 -
 .../java/arq/cmdline/ModDatasetGeneral.java     |     3 -
 .../main/java/arq/cmdline/ModLangOutput.java    |   134 +-
 jena-arq/src/main/java/arq/iri.java             |     4 +-
 .../main/java/com/hp/hpl/jena/query/ARQ.java    |     5 +-
 .../com/hp/hpl/jena/query/DatasetAccessor.java  |     1 -
 .../com/hp/hpl/jena/query/QueryExecution.java   |     4 +-
 .../java/com/hp/hpl/jena/sparql/SystemARQ.java  |     6 +-
 .../hp/hpl/jena/sparql/algebra/Transformer.java |     4 +-
 .../hpl/jena/sparql/algebra/op/OpQuadBlock.java |     2 +-
 .../jena/sparql/algebra/op/OpQuadPattern.java   |     2 +-
 .../optimize/TransformFilterEquality.java       |    78 +-
 .../optimize/TransformFilterPlacement.java      |   224 +-
 .../com/hp/hpl/jena/sparql/core/DataBlock.java  |    25 -
 .../com/hp/hpl/jena/sparql/core/DataFormat.java |    65 -
 .../jena/sparql/core/DatasetChangesCapture.java |     2 +-
 .../hp/hpl/jena/sparql/core/DatasetGraph.java   |     4 +-
 .../jena/sparql/core/DatasetGraphCaching.java   |    93 +-
 .../sparql/core/DatasetGraphCollection.java     |     7 +-
 .../jena/sparql/core/DatasetGraphMonitor.java   |     2 +-
 .../jena/sparql/core/DatasetGraphSimpleMem.java |     5 +-
 .../sparql/core/DatasetGraphViewGraphs.java     |     4 +-
 .../com/hp/hpl/jena/sparql/core/GraphView.java  |     3 +-
 .../com/hp/hpl/jena/sparql/core/QuadAction.java |     2 +-
 .../engine/binding/BindingProjectBase.java      |     2 +-
 .../hp/hpl/jena/sparql/expr/ExprAggregator.java |     7 +-
 .../com/hp/hpl/jena/sparql/expr/ExprList.java   |    20 +-
 .../hpl/jena/sparql/expr/ExprTransformer.java   |     9 +-
 .../com/hp/hpl/jena/sparql/expr/NodeValue.java  |    47 +-
 .../expr/aggregate/AccumulatorFactory.java      |    31 +
 .../hpl/jena/sparql/expr/aggregate/AggAvg.java  |    24 +-
 .../sparql/expr/aggregate/AggAvgDistinct.java   |    25 +-
 .../jena/sparql/expr/aggregate/AggCount.java    |    12 +-
 .../sparql/expr/aggregate/AggCountDistinct.java |     8 +-
 .../jena/sparql/expr/aggregate/AggCountVar.java |    21 +-
 .../expr/aggregate/AggCountVarDistinct.java     |    21 +-
 .../jena/sparql/expr/aggregate/AggCustom.java   |   102 +-
 .../sparql/expr/aggregate/AggGroupConcat.java   |    78 +-
 .../expr/aggregate/AggGroupConcatDistinct.java  |    45 +-
 .../hpl/jena/sparql/expr/aggregate/AggMax.java  |    18 +-
 .../jena/sparql/expr/aggregate/AggMaxBase.java  |     9 +-
 .../sparql/expr/aggregate/AggMaxDistinct.java   |    18 +-
 .../hpl/jena/sparql/expr/aggregate/AggMin.java  |    18 +-
 .../jena/sparql/expr/aggregate/AggMinBase.java  |     9 +-
 .../sparql/expr/aggregate/AggMinDistinct.java   |    19 +-
 .../hpl/jena/sparql/expr/aggregate/AggNull.java |    14 +-
 .../jena/sparql/expr/aggregate/AggSample.java   |    26 +-
 .../expr/aggregate/AggSampleDistinct.java       |    21 +-
 .../hpl/jena/sparql/expr/aggregate/AggSum.java  |    23 +-
 .../sparql/expr/aggregate/AggSumDistinct.java   |    22 +-
 .../expr/aggregate/AggregateRegistry.java       |    70 +
 .../jena/sparql/expr/aggregate/Aggregator.java  |    14 +-
 .../sparql/expr/aggregate/AggregatorBase.java   |    70 +-
 .../expr/aggregate/AggregatorFactory.java       |     5 +-
 .../sparql/expr/nodevalue/NodeFunctions.java    |    91 +-
 .../sparql/expr/nodevalue/NodeValueDecimal.java |     2 +-
 .../sparql/expr/nodevalue/NodeValueDouble.java  |     2 +-
 .../expr/nodevalue/NodeValueDuration.java       |     2 +-
 .../sparql/expr/nodevalue/NodeValueFloat.java   |     2 +-
 .../sparql/expr/nodevalue/NodeValueInteger.java |     2 +-
 .../jena/sparql/expr/nodevalue/XSDFuncOp.java   |    21 +-
 .../hp/hpl/jena/sparql/graph/GraphDataBag.java  |     5 +-
 .../hp/hpl/jena/sparql/graph/GraphMemPlain.java |     9 +-
 .../hp/hpl/jena/sparql/graph/GraphSPARQL.java   |     2 +-
 .../jena/sparql/graph/GraphSPARQLService.java   |     5 +-
 .../hpl/jena/sparql/graph/GraphUnionRead.java   |     3 +-
 .../hp/hpl/jena/sparql/graph/GraphWrapper.java  |    12 +-
 .../com/hp/hpl/jena/sparql/graph/NodeConst.java |    20 +-
 .../com/hp/hpl/jena/sparql/lang/ParserBase.java |    16 +-
 .../hp/hpl/jena/sparql/lang/arq/ARQParser.java  |   596 +-
 .../sparql/lang/sparql_11/SPARQLParser11.java   |    16 +-
 .../com/hp/hpl/jena/sparql/lib/DatasetLib.java  |     6 +-
 .../hpl/jena/sparql/modify/GraphStoreNull.java  |    22 +-
 .../hp/hpl/jena/sparql/modify/UpdateEngine.java |     2 +-
 .../hp/hpl/jena/sparql/modify/UpdateSink.java   |     2 +-
 .../sparql/resultset/JSONInputIterator.java     |     2 +-
 .../sparql/resultset/JSONOutputResultSet.java   |    17 +-
 .../hp/hpl/jena/sparql/resultset/RDFOutput.java |     6 +-
 .../jena/sparql/resultset/ResultSetCompare.java |     4 +-
 .../jena/sparql/serializer/FmtExprSPARQL.java   |     2 +-
 .../java/com/hp/hpl/jena/sparql/sse/SSE.java    |    11 +-
 .../java/com/hp/hpl/jena/sparql/sse/Tags.java   |     3 +-
 .../jena/sparql/sse/builders/BuilderExpr.java   |    25 +-
 .../jena/sparql/sse/lang/ParseHandlerPlain.java |     4 +-
 .../hp/hpl/jena/sparql/util/DateTimeStruct.java |     2 +-
 .../com/hp/hpl/jena/sparql/util/ExprUtils.java  |     8 +
 .../com/hp/hpl/jena/sparql/util/FmtUtils.java   |    67 +-
 .../hpl/jena/sparql/util/NodeFactoryExtra.java  |    18 +-
 .../com/hp/hpl/jena/sparql/util/NodeUtils.java  |   281 +-
 .../hp/hpl/jena/sparql/util/StringUtils.java    |     5 +-
 .../java/com/hp/hpl/jena/sparql/util/Timer.java |    48 +-
 .../java/com/hp/hpl/jena/sparql/util/Utils.java |   220 +-
 .../hpl/jena/sparql/util/graph/GraphSink.java   |     3 +-
 .../org/apache/jena/atlas/iterator/Iter.java    |    27 +-
 .../jena/atlas/iterator/IteratorConcat.java     |    19 +-
 .../jena/atlas/iterator/IteratorCons.java       |     9 +-
 .../jena/atlas/iterator/IteratorWithBuffer.java |   117 +-
 .../atlas/iterator/IteratorWithHistory.java     |    61 +-
 .../jena/atlas/iterator/PushbackIterator.java   |    37 +-
 .../org/apache/jena/atlas/lib/AlarmClock.java   |     2 +-
 .../org/apache/jena/atlas/lib/MultiMap.java     |    26 +-
 .../org/apache/jena/atlas/lib/Registry.java     |    39 +
 .../java/org/apache/jena/atlas/lib/Tuple.java   |     2 +-
 .../apache/jena/atlas/lib/cache/CacheLRU.java   |     2 +-
 .../org/apache/jena/atlas/logging/FmtLog.java   |    61 +-
 .../org/apache/jena/atlas/logging/LogCtl.java   |     1 -
 .../main/java/org/apache/jena/riot/Lang.java    |     6 +-
 .../java/org/apache/jena/riot/RDFDataMgr.java   |     4 +-
 .../java/org/apache/jena/riot/RDFFormat.java    |     2 +-
 .../java/org/apache/jena/riot/RDFLanguages.java |    13 +-
 .../org/apache/jena/riot/RDFWriterRegistry.java |    14 +-
 .../java/org/apache/jena/riot/ResultSetMgr.java |    30 +-
 .../java/org/apache/jena/riot/RiotReader.java   |     8 +-
 .../java/org/apache/jena/riot/RiotWriter.java   |    30 +-
 .../jena/riot/checker/CheckerLiterals.java      |   164 +-
 .../jena/riot/lang/BlankNodeAllocator.java      |     4 +-
 .../jena/riot/lang/BlankNodeAllocatorLabel.java |     2 +-
 .../lang/BlankNodeAllocatorLabelEncoded.java    |     2 +-
 .../org/apache/jena/riot/lang/JsonLDReader.java |     2 +-
 .../org/apache/jena/riot/lang/LangNQuads.java   |     3 +-
 .../org/apache/jena/riot/lang/LangNTriples.java |     5 +
 .../org/apache/jena/riot/lang/LangRDFJSON.java  |     4 +-
 .../org/apache/jena/riot/lang/LangRDFXML.java   |     8 +-
 .../org/apache/jena/riot/lang/LangTriG.java     |     5 +-
 .../org/apache/jena/riot/lang/LangTurtle.java   |     5 +-
 .../apache/jena/riot/out/NodeFormatterBase.java |    24 +-
 .../org/apache/jena/riot/out/RDFJSONWriter.java |    54 -
 .../apache/jena/riot/out/SinkEntityOutput.java  |   147 -
 .../process/normalize/CanonicalizeLiteral.java  |    27 +-
 .../riot/process/normalize/NormalizeValue.java  |    16 +-
 .../riot/process/normalize/NormalizeValue2.java |     4 +-
 .../jena/riot/resultset/ResultSetReader.java    |     8 +-
 .../riot/resultset/ResultSetReaderRegistry.java |     4 +-
 .../jena/riot/resultset/ResultSetWriter.java    |     7 +-
 .../riot/resultset/ResultSetWriterRegistry.java |    40 +-
 .../org/apache/jena/riot/system/IRILib.java     |    54 +-
 .../apache/jena/riot/system/IRIResolver.java    |    29 +-
 .../jena/riot/system/ParserProfileBase.java     |     4 +-
 .../jena/riot/system/ParserProfileChecker.java  |     4 +-
 .../jena/riot/system/PrefixMapFactory.java      |     2 +-
 .../org/apache/jena/riot/system/RiotLib.java    |     2 +-
 .../jena/riot/system/StreamRDFWriter.java       |     6 +-
 .../jena/riot/system/stream/LocatorFile.java    |     2 +-
 .../jena/riot/system/stream/StreamManager.java  |     4 +-
 .../org/apache/jena/riot/thrift/BinRDF.java     |    44 +-
 .../jena/riot/thrift/StreamRDF2Thrift.java      |     2 +-
 .../java/org/apache/jena/riot/thrift/TRDF.java  |     8 +-
 .../apache/jena/riot/thrift/ThriftConvert.java  |     8 +-
 .../java/org/apache/jena/riot/tokens/Token.java |   231 +-
 .../apache/jena/riot/tokens/TokenizerText.java  |    20 +-
 .../java/org/apache/jena/riot/web/HttpOp.java   |     2 +-
 .../java/org/apache/jena/riot/web/LangTag.java  |     3 +-
 .../apache/jena/riot/writer/RDFJSONWriter.java  |   114 +-
 .../jena/riot/writer/SinkEntityOutput.java      |   148 -
 .../apache/jena/riot/writer/TurtleShell.java    |    14 +-
 .../jena/riot/writer/WriterStreamRDFPlain.java  |     4 +-
 .../org/apache/jena/riot/writer/WriterTriX.java |     2 +-
 .../src/main/java/riotcmd/CmdLangParse.java     |    54 +-
 jena-arq/src/main/resources/META-INF/NOTICE     |     2 +-
 .../optimize/TestTransformConstantFolding.java  |    18 +
 .../optimize/TestTransformFilterPlacement.java  |   101 +-
 .../algebra/optimize/TestTransformFilters.java  |    30 +-
 .../engine/iterator/TestQueryIterSort.java      |     2 +-
 .../com/hp/hpl/jena/sparql/expr/TS_Expr.java    |     1 +
 .../jena/sparql/expr/TestCustomAggregates.java  |   163 +
 .../hp/hpl/jena/sparql/expr/TestFunctions.java  |     4 +-
 .../hpl/jena/sparql/expr/TestNodeFunctions.java |    67 +-
 .../hp/hpl/jena/sparql/expr/TestNodeValue.java  |    26 +-
 .../hp/hpl/jena/sparql/expr/TestOrdering.java   |    52 +-
 .../hp/hpl/jena/sparql/expr/TestXSDFuncOp.java  |    64 +-
 .../hpl/jena/sparql/syntax/TestSSE_Basic.java   |     8 +-
 .../hpl/jena/sparql/syntax/TestSSE_Forms.java   |     2 +-
 .../com/hp/hpl/jena/sparql/util/TS_Util.java    |     4 +-
 .../hp/hpl/jena/sparql/util/TestFmtUtils.java   |    13 +-
 .../com/hp/hpl/jena/sparql/util/TestList.java   |    10 +-
 .../com/hp/hpl/jena/sparql/util/TestUtils.java  |    84 +
 .../jena/atlas/data/TestDistinctDataBag.java    |     2 +-
 .../jena/atlas/data/TestDistinctDataNet.java    |     2 +-
 .../jena/atlas/data/TestSortedDataBag.java      |     2 +-
 .../apache/jena/riot/ErrorHandlerTestLib.java   |    15 +-
 .../test/java/org/apache/jena/riot/TC_Riot.java |     4 +-
 .../org/apache/jena/riot/out/TestNodeFmt.java   |    16 +-
 .../apache/jena/riot/system/TestChecker.java    |     1 +
 .../jena/riot/tokens/TestTokenForNode.java      |     6 +-
 .../apache/jena/riot/tokens/TestTokenizer.java  |    91 +-
 .../apache/jena/riot/writer/TestRDFJSON.java    |    17 +-
 .../ARQ/BasicPatterns/result-B-01-RDF_10.n3     |    19 +
 .../ARQ/BasicPatterns/result-B-01-RDF_11.n3     |    24 +
 .../ARQ/Distinct/distinct-all_RDF_10.srx        |   111 +
 .../ARQ/Distinct/distinct-all_RDF_11.srx        |    93 +
 .../ARQ/Distinct/distinct-str_RDF_10.srx        |    56 +
 .../ARQ/Distinct/distinct-str_RDF_11.srx        |    38 +
 jena-arq/testing/ARQ/GroupBy/agg-1.srj          |     3 +-
 jena-arq/testing/ARQ/GroupBy/agg-2.srj          |     3 +-
 jena-arq/testing/ARQ/SPARQL11_RDF11.txt         |    24 +
 jena-arq/testing/ARQ/Sort/sort-2.rq             |     2 +-
 jena-arq/testing/ARQ/Sort/sort-3.rq             |     2 +-
 .../testing/ARQ/Sort/sort-result-2_RDF_10.ttl   |   169 +
 .../testing/ARQ/Sort/sort-result-2_RDF_11.ttl   |   169 +
 .../testing/ARQ/Sort/sort-result-3_RDF_10.ttl   |   169 +
 .../testing/ARQ/Sort/sort-result-3_RDF_11.ttl   |   169 +
 jena-arq/testing/DAWG-Final/AFS.txt             |     8 -
 jena-arq/testing/DAWG-Final/SPARQL11_RDF11.txt  |    15 +
 .../DAWG-Final/distinct/distinct-all_RDF_10.srx |   111 +
 .../DAWG-Final/distinct/distinct-all_RDF_11.srx |    93 +
 .../DAWG-Final/distinct/distinct-str_RDF_10.srx |    56 +
 .../DAWG-Final/distinct/distinct-str_RDF_11.srx |    38 +
 jena-core/NOTICE                                |     2 +-
 jena-core/pom.xml                               |     2 +-
 .../main/java/com/hp/hpl/jena/JenaRuntime.java  |     2 +-
 .../assemblers/FileModelAssembler.java          |    17 +-
 .../assemblers/UnionModelAssembler.java         |    24 +-
 .../com/hp/hpl/jena/datatypes/TypeMapper.java   |     4 +-
 .../hp/hpl/jena/datatypes/xsd/XSDDatatype.java  |     2 +-
 .../jena/datatypes/xsd/impl/RDFLangString.java  |    66 +
 .../jena/datatypes/xsd/impl/XMLLiteralType.java |     4 +-
 .../datatypes/xsd/impl/XSDBaseStringType.java   |    24 +-
 .../java/com/hp/hpl/jena/graph/Factory.java     |    17 +-
 .../main/java/com/hp/hpl/jena/graph/Graph.java  |    18 +-
 .../java/com/hp/hpl/jena/graph/GraphUtil.java   |   129 +-
 .../java/com/hp/hpl/jena/graph/NodeFactory.java |   146 +-
 .../main/java/com/hp/hpl/jena/graph/Triple.java |    12 +-
 .../java/com/hp/hpl/jena/graph/TripleMatch.java |     4 +
 .../com/hp/hpl/jena/graph/compose/Delta.java    |     4 +-
 .../hp/hpl/jena/graph/compose/Difference.java   |     2 +-
 .../hpl/jena/graph/compose/DisjointUnion.java   |     3 +-
 .../com/hp/hpl/jena/graph/compose/Dyadic.java   |     4 +-
 .../hp/hpl/jena/graph/compose/Intersection.java |     2 +-
 .../hp/hpl/jena/graph/compose/MultiUnion.java   |     6 +-
 .../com/hp/hpl/jena/graph/compose/Union.java    |    11 +-
 .../hp/hpl/jena/graph/impl/CollectionGraph.java |    33 +-
 .../com/hp/hpl/jena/graph/impl/GraphBase.java   |    28 +-
 .../hp/hpl/jena/graph/impl/LiteralLabel.java    |     4 +-
 .../jena/graph/impl/LiteralLabelFactory.java    |    86 +-
 .../hpl/jena/graph/impl/LiteralLabelImpl.java   |   188 +-
 .../hpl/jena/graph/impl/SimpleEventManager.java |   243 +-
 .../com/hp/hpl/jena/graph/impl/TripleStore.java |     2 +-
 .../hp/hpl/jena/graph/impl/WrappedGraph.java    |     8 +-
 .../main/java/com/hp/hpl/jena/mem/GraphMem.java |     4 +-
 .../hp/hpl/jena/mem/GraphTripleStoreBase.java   |     4 +-
 .../com/hp/hpl/jena/n3/N3JenaWriterCommon.java  |    13 +-
 .../java/com/hp/hpl/jena/ontology/OntModel.java |     8 +-
 .../rdf/model/EmptyListUpdateException.java     |     2 +-
 .../hp/hpl/jena/rdf/model/ResourceFactory.java  |     8 +-
 .../hp/hpl/jena/rdf/model/SimpleSelector.java   |     2 +-
 .../com/hp/hpl/jena/rdf/model/Statement.java    |    24 +-
 .../com/hp/hpl/jena/rdf/model/impl/AltImpl.java |     2 +-
 .../hpl/jena/rdf/model/impl/ContainerImpl.java  |     2 +-
 .../hp/hpl/jena/rdf/model/impl/LiteralImpl.java |    10 +-
 .../hp/hpl/jena/rdf/model/impl/ModelCom.java    |    12 +-
 .../hp/hpl/jena/rdf/model/impl/ReifierStd.java  |    28 +-
 .../com/hp/hpl/jena/rdf/model/impl/SeqImpl.java |     2 +-
 .../hpl/jena/rdf/model/impl/StatementBase.java  |     9 +-
 .../com/hp/hpl/jena/rdf/model/impl/Util.java    |    77 +-
 .../hp/hpl/jena/rdfxml/xmlinput/JenaReader.java |     4 +-
 .../rdfxml/xmlinput/impl/AbsXMLContext.java     |    71 +-
 .../rdfxml/xmlinput/impl/ParserSupport.java     |    16 +-
 .../jena/rdfxml/xmlinput/impl/XMLContext.java   |     9 +-
 .../rdfxml/xmlinput/lang/IanaLanguageTag.java   |   145 -
 .../hpl/jena/rdfxml/xmlinput/lang/Iso3166.java  |   308 -
 .../hpl/jena/rdfxml/xmlinput/lang/Iso639.java   |   619 -
 .../jena/rdfxml/xmlinput/lang/LanguageTag.java  |   222 -
 .../rdfxml/xmlinput/lang/LanguageTagCodes.java  |    88 -
 .../lang/LanguageTagSyntaxException.java        |    47 -
 .../hpl/jena/rdfxml/xmlinput/lang/package.html  |    27 -
 .../hpl/jena/rdfxml/xmloutput/impl/Basic.java   |    18 +-
 .../jena/rdfxml/xmloutput/impl/Unparser.java    |    49 +-
 .../com/hp/hpl/jena/reasoner/BaseInfGraph.java  |     6 +-
 .../com/hp/hpl/jena/reasoner/TriplePattern.java |    16 +-
 .../rulesys/BasicForwardRuleInfGraph.java       |     2 +-
 .../jena/reasoner/rulesys/FBRuleInfGraph.java   |     2 +-
 .../hp/hpl/jena/reasoner/rulesys/Functor.java   |     2 +-
 .../reasoner/rulesys/Node_RuleVariable.java     |     2 +-
 .../com/hp/hpl/jena/reasoner/rulesys/Rule.java  |    10 +-
 .../com/hp/hpl/jena/reasoner/rulesys/Util.java  |     8 +-
 .../hpl/jena/reasoner/rulesys/builtins/Now.java |     2 +-
 .../jena/reasoner/rulesys/impl/SafeGraph.java   |    19 +-
 .../hp/hpl/jena/shared/RandomOrderGraph.java    |     4 +-
 .../java/com/hp/hpl/jena/util/FileManager.java  |     4 +-
 .../java/com/hp/hpl/jena/util/PrintUtil.java    |    26 +-
 .../jena/util/iterator/IteratorIterator.java    |     2 +-
 .../java/com/hp/hpl/jena/vocabulary/RDF.java    |    18 +-
 jena-core/src/main/java/jena/rdfcat.java        |    61 +-
 jena-core/src/main/resources/META-INF/NOTICE    |     2 +-
 .../assembler/test/TestFileModelAssembler.java  |    62 +-
 .../jena/graph/compose/test/TestDifference.java |    60 +-
 .../hpl/jena/graph/compose/test/TestDyadic.java |     2 +-
 .../graph/compose/test/TestUnionStatistics.java |     2 +-
 .../hp/hpl/jena/graph/test/NodeCreateUtils.java |     4 +-
 .../hpl/jena/graph/test/TestFindLiterals.java   |    57 +-
 .../jena/graph/test/TestGraphBaseToString.java  |     2 +-
 .../hp/hpl/jena/graph/test/TestGraphUtils.java  |     3 +-
 .../graph/test/TestLiteralLabelSameValueAs.java |    99 +
 .../hpl/jena/graph/test/TestLiteralLabels.java  |    19 +-
 .../com/hp/hpl/jena/graph/test/TestNode.java    |   555 +-
 .../com/hp/hpl/jena/graph/test/TestPackage.java |     1 +
 .../hpl/jena/graph/test/TestTypedLiterals.java  |    62 +-
 .../com/hp/hpl/jena/mem/test/TestGraphMem.java  |     2 +-
 .../hp/hpl/jena/rdfxml/xmlinput/MoreTests.java  |     2 +-
 .../rulesys/test/FRuleEngineIFactoryTest.java   |    14 +-
 .../jena/reasoner/rulesys/test/TestBasicLP.java |    12 +-
 .../jena/reasoner/rulesys/test/TestBugs.java    |     2 +-
 .../rulesys/test/TestComparatorBuiltins.java    |    20 +-
 .../jena/reasoner/rulesys/test/TestFBRules.java |    58 +-
 .../reasoner/rulesys/test/TestLPDerivation.java |     2 +-
 jena-csv/NOTICE                                 |     2 +-
 jena-csv/pom.xml                                |    11 +-
 .../propertytable/graph/GraphPropertyTable.java |    44 +-
 .../impl/PropertyTableHashMapImpl.java          |    59 +-
 jena-csv/src/main/resources/META-INF/NOTICE     |     5 +
 .../jena/propertytable/graph/GraphCSVTest.java  |     1 -
 jena-elephas/LICENSE                            |   176 +
 jena-elephas/NOTICE                             |     5 +
 jena-elephas/jena-elephas-common/pom.xml        |    54 +
 .../rdf/types/AbstractNodeTupleWritable.java    |   193 +
 .../rdf/types/CharacteristicSetWritable.java    |   298 +
 .../rdf/types/CharacteristicWritable.java       |   160 +
 .../hadoop/rdf/types/NodeTupleWritable.java     |    80 +
 .../jena/hadoop/rdf/types/NodeWritable.java     |   188 +
 .../jena/hadoop/rdf/types/QuadWritable.java     |   136 +
 .../jena/hadoop/rdf/types/TripleWritable.java   |   138 +
 .../comparators/SimpleBinaryComparator.java     |    34 +
 .../rdf/types/converters/ThriftConverter.java   |   147 +
 .../rdf/io/types/CharacteristicTests.java       |   210 +
 .../jena/hadoop/rdf/io/types/RdfTypesTest.java  |   406 +
 .../src/test/resources/log4j.properties         |    19 +
 jena-elephas/jena-elephas-io/pom.xml            |    67 +
 .../jena/hadoop/rdf/io/HadoopIOConstants.java   |    49 +
 .../jena/hadoop/rdf/io/RdfIOConstants.java      |    81 +
 .../io/input/AbstractNLineFileInputFormat.java  |    70 +
 .../io/input/AbstractWholeFileInputFormat.java  |    42 +
 .../hadoop/rdf/io/input/QuadsInputFormat.java   |    46 +
 .../hadoop/rdf/io/input/TriplesInputFormat.java |    42 +
 .../rdf/io/input/TriplesOrQuadsInputFormat.java |    47 +
 .../io/input/jsonld/JsonLDQuadInputFormat.java  |    39 +
 .../input/jsonld/JsonLDTripleInputFormat.java   |    39 +
 .../input/nquads/BlockedNQuadsInputFormat.java  |    53 +
 .../rdf/io/input/nquads/NQuadsInputFormat.java  |    46 +
 .../nquads/WholeFileNQuadsInputFormat.java      |    51 +
 .../ntriples/BlockedNTriplesInputFormat.java    |    53 +
 .../io/input/ntriples/NTriplesInputFormat.java  |    46 +
 .../ntriples/WholeFileNTriplesInputFormat.java  |    51 +
 .../io/input/rdfjson/RdfJsonInputFormat.java    |    46 +
 .../rdf/io/input/rdfxml/RdfXmlInputFormat.java  |    46 +
 .../AbstractBlockBasedNodeTupleReader.java      |   344 +
 .../readers/AbstractBlockBasedQuadReader.java   |    51 +
 .../readers/AbstractBlockBasedTripleReader.java |    51 +
 .../AbstractLineBasedNodeTupleReader.java       |   265 +
 .../readers/AbstractLineBasedQuadReader.java    |    50 +
 .../readers/AbstractLineBasedTripleReader.java  |    51 +
 .../rdf/io/input/readers/AbstractRdfReader.java |   108 +
 .../AbstractWholeFileNodeTupleReader.java       |   328 +
 .../readers/AbstractWholeFileQuadReader.java    |    51 +
 .../readers/AbstractWholeFileTripleReader.java  |    51 +
 .../rdf/io/input/readers/QuadsReader.java       |    49 +
 .../io/input/readers/TriplesOrQuadsReader.java  |    72 +
 .../rdf/io/input/readers/TriplesReader.java     |    49 +
 .../io/input/readers/TriplesToQuadsReader.java  |   102 +
 .../input/readers/jsonld/JsonLDQuadReader.java  |    32 +
 .../readers/jsonld/JsonLDTripleReader.java      |    30 +
 .../readers/nquads/BlockedNQuadsReader.java     |    45 +
 .../io/input/readers/nquads/NQuadsReader.java   |    49 +
 .../readers/nquads/WholeFileNQuadsReader.java   |    42 +
 .../readers/ntriples/BlockedNTriplesReader.java |    45 +
 .../input/readers/ntriples/NTriplesReader.java  |    48 +
 .../ntriples/WholeFileNTriplesReader.java       |    42 +
 .../io/input/readers/rdfjson/RdfJsonReader.java |    37 +
 .../io/input/readers/rdfxml/RdfXmlReader.java   |    37 +
 .../input/readers/thrift/ThriftQuadReader.java  |    32 +
 .../readers/thrift/ThriftTripleReader.java      |    30 +
 .../rdf/io/input/readers/trig/TriGReader.java   |    37 +
 .../rdf/io/input/readers/trix/TriXReader.java   |    37 +
 .../io/input/readers/turtle/TurtleReader.java   |    37 +
 .../io/input/thrift/ThriftQuadInputFormat.java  |    39 +
 .../input/thrift/ThriftTripleInputFormat.java   |    39 +
 .../rdf/io/input/trig/TriGInputFormat.java      |    46 +
 .../rdf/io/input/trix/TriXInputFormat.java      |    42 +
 .../rdf/io/input/turtle/TurtleInputFormat.java  |    46 +
 .../rdf/io/input/util/BlockInputStream.java     |    94 +
 .../hadoop/rdf/io/input/util/RdfIOUtils.java    |   101 +
 .../rdf/io/input/util/TrackableInputStream.java |    38 +
 .../rdf/io/input/util/TrackedInputStream.java   |   124 +
 .../io/input/util/TrackedPipedQuadsStream.java  |    55 +
 .../io/input/util/TrackedPipedRDFStream.java    |    64 +
 .../input/util/TrackedPipedTriplesStream.java   |    56 +
 .../AbstractBatchedNodeTupleOutputFormat.java   |    55 +
 .../rdf/io/output/AbstractNodeOutputFormat.java |    94 +
 .../output/AbstractNodeTupleOutputFormat.java   |   109 +
 .../AbstractStreamRdfNodeTupleOutputFormat.java |    73 +
 .../hadoop/rdf/io/output/QuadsOutputFormat.java |    64 +
 .../io/output/TriplesOrQuadsOutputFormat.java   |    74 +
 .../rdf/io/output/TriplesOutputFormat.java      |    61 +
 .../output/jsonld/JsonLDQuadOutputFormat.java   |    44 +
 .../output/jsonld/JsonLDTripleOutputFormat.java |    44 +
 .../io/output/nquads/NQuadsOutputFormat.java    |    52 +
 .../ntriples/NTriplesNodeOutputFormat.java      |    45 +
 .../output/ntriples/NTriplesOutputFormat.java   |    52 +
 .../io/output/rdfjson/RdfJsonOutputFormat.java  |    52 +
 .../io/output/rdfxml/RdfXmlOutputFormat.java    |    52 +
 .../output/thrift/ThriftQuadOutputFormat.java   |    51 +
 .../output/thrift/ThriftTripleOutputFormat.java |    52 +
 .../io/output/trig/BatchedTriGOutputFormat.java |    54 +
 .../rdf/io/output/trig/TriGOutputFormat.java    |    58 +
 .../rdf/io/output/trix/TriXOutputFormat.java    |    57 +
 .../turtle/BatchedTurtleOutputFormat.java       |    50 +
 .../io/output/turtle/TurtleOutputFormat.java    |    56 +
 .../writers/AbstractBatchedNodeTupleWriter.java |   113 +
 .../writers/AbstractBatchedQuadWriter.java      |    80 +
 .../writers/AbstractBatchedTripleWriter.java    |    68 +
 .../AbstractLineBasedNodeTupleWriter.java       |   152 +
 .../writers/AbstractLineBasedQuadWriter.java    |    71 +
 .../writers/AbstractLineBasedTripleWriter.java  |    68 +
 .../io/output/writers/AbstractNodeWriter.java   |   192 +
 .../AbstractStreamRdfNodeTupleWriter.java       |    71 +
 .../AbstractWholeFileNodeTupleWriter.java       |    96 +
 .../writers/AbstractWholeFileQuadWriter.java    |    66 +
 .../writers/AbstractWholeFileTripleWriter.java  |    65 +
 .../io/output/writers/QuadsToTriplesWriter.java |    59 +
 .../io/output/writers/StreamRdfQuadWriter.java  |    45 +
 .../output/writers/StreamRdfTripleWriter.java   |    44 +
 .../output/writers/jsonld/JsonLDQuadWriter.java |    38 +
 .../writers/jsonld/JsonLDTripleWriter.java      |    38 +
 .../io/output/writers/nquads/NQuadsWriter.java  |    57 +
 .../writers/ntriples/NTriplesNodeWriter.java    |    59 +
 .../output/writers/ntriples/NTriplesWriter.java |    58 +
 .../output/writers/rdfjson/RdfJsonWriter.java   |    51 +
 .../io/output/writers/rdfxml/RdfXmlWriter.java  |    51 +
 .../output/writers/thrift/ThriftQuadWriter.java |    38 +
 .../writers/thrift/ThriftTripleWriter.java      |    38 +
 .../output/writers/trig/BatchedTriGWriter.java  |    52 +
 .../writers/turtle/BatchedTurtleWriter.java     |    54 +
 .../rdf/io/registry/HadoopRdfIORegistry.java    |   310 +
 .../hadoop/rdf/io/registry/ReaderFactory.java   |    83 +
 .../hadoop/rdf/io/registry/WriterFactory.java   |    96 +
 .../readers/AbstractQuadsOnlyReaderFactory.java |    83 +
 .../registry/readers/AbstractReaderFactory.java |    80 +
 .../AbstractTriplesOnlyReaderFactory.java       |    83 +
 .../registry/readers/JsonLDReaderFactory.java   |    49 +
 .../registry/readers/NQuadsReaderFactory.java   |    42 +
 .../registry/readers/NTriplesReaderFactory.java |    38 +
 .../registry/readers/RdfJsonReaderFactory.java  |    41 +
 .../registry/readers/RdfXmlReaderFactory.java   |    40 +
 .../registry/readers/ThriftReaderFactory.java   |    49 +
 .../io/registry/readers/TriGReaderFactory.java  |    42 +
 .../io/registry/readers/TriXReaderFactory.java  |    41 +
 .../registry/readers/TurtleReaderFactory.java   |    40 +
 .../writers/AbstractQuadsOnlyWriterFactory.java |    86 +
 .../AbstractTriplesOnlyWriterFactory.java       |    85 +
 .../registry/writers/AbstractWriterFactory.java |    82 +
 .../registry/writers/JsonLDWriterFactory.java   |    52 +
 .../registry/writers/NQuadsWriterFactory.java   |    44 +
 .../registry/writers/NTriplesWriterFactory.java |    44 +
 .../registry/writers/RdfJsonWriterFactory.java  |    43 +
 .../registry/writers/RdfXmlWriterFactory.java   |    44 +
 .../registry/writers/ThriftWriterFactory.java   |    57 +
 .../io/registry/writers/TriGWriterFactory.java  |    45 +
 .../io/registry/writers/TriXWriterFactory.java  |    47 +
 .../registry/writers/TurtleWriterFactory.java   |    45 +
 ...he.jena.hadoop.rdf.io.registry.ReaderFactory |    10 +
 ...he.jena.hadoop.rdf.io.registry.WriterFactory |    10 +
 .../rdf/io/RdfTriplesInputTestMapper.java       |    47 +
 .../AbstractBlockedQuadInputFormatTests.java    |    33 +
 .../AbstractBlockedTripleInputFormatTests.java  |    33 +
 .../AbstractNodeTupleInputFormatTests.java      |   612 +
 .../io/input/AbstractQuadsInputFormatTests.java |    70 +
 .../input/AbstractTriplesInputFormatTests.java  |    72 +
 .../AbstractWholeFileQuadInputFormatTests.java  |   115 +
 ...AbstractWholeFileTripleInputFormatTests.java |   108 +
 .../io/input/bnodes/AbstractBlankNodeTests.java |   636 +
 .../bnodes/AbstractTripleBlankNodeTests.java    |    65 +
 .../input/bnodes/JsonLdTripleBlankNodeTest.java |    63 +
 .../io/input/bnodes/NTriplesBlankNodeTest.java  |    58 +
 .../io/input/bnodes/RdfJsonBlankNodeTest.java   |    58 +
 .../io/input/bnodes/RdfThriftBlankNodeTest.java |    68 +
 .../io/input/bnodes/RdfXmlBlankNodeTest.java    |    62 +
 .../io/input/bnodes/TurtleBlankNodeTest.java    |    58 +
 ...ractCompressedNodeTupleInputFormatTests.java |    74 +
 ...AbstractCompressedQuadsInputFormatTests.java |    71 +
 ...stractCompressedTriplesInputFormatTests.java |    71 +
 ...CompressedWholeFileQuadInputFormatTests.java |   150 +
 ...mpressedWholeFileTripleInputFormatTests.java |   144 +
 ...actCompressedJsonLDQuadInputFormatTests.java |    74 +
 ...tCompressedJsonLDTripleInputFormatTests.java |    74 +
 .../jsonld/BZippedJsonLDQuadInputTest.java      |    34 +
 .../jsonld/BZippedJsonLDTripleInputTest.java    |    34 +
 .../jsonld/DeflatedJsonLDQuadInputTest.java     |    34 +
 .../jsonld/DeflatedJsonLDTripleInputTest.java   |    34 +
 .../jsonld/GZippedJsonLDQuadInputTest.java      |    34 +
 .../jsonld/GZippedJsonLDTripleInputTest.java    |    34 +
 ...bstractCompressedNQuadsInputFormatTests.java |    68 +
 ...mpressedWholeFileNQuadsInputFormatTests.java |    75 +
 .../nquads/BZipppedNQuadsInputTest.java         |    38 +
 .../BZipppedWholeFileNQuadsInputTest.java       |    37 +
 .../nquads/DeflatedNQuadsInputTest.java         |    37 +
 .../DeflatedWholeFileNQuadsInputTest.java       |    37 +
 .../nquads/GZippedNQuadsInputTest.java          |    38 +
 .../nquads/GZippedWholeFileNQuadsInputTest.java |    38 +
 ...mpressedBlockedNTriplesInputFormatTests.java |    53 +
 ...tractCompressedNTriplesInputFormatTests.java |    68 +
 ...ressedWholeFileNTriplesInputFormatTests.java |    75 +
 .../ntriples/BZippedBlockedNTriplesInput.java   |    37 +
 .../ntriples/BZippedNTriplesInputTest.java      |    38 +
 .../BZippedWholeFileNTriplesInputTest.java      |    38 +
 .../ntriples/DeflatedBlockedNTriplesInput.java  |    37 +
 .../ntriples/DeflatedNTriplesInputTest.java     |    38 +
 .../DeflatedWholeFileNTriplesInputTest.java     |    38 +
 .../ntriples/GZippedBlockedNTriplesInput.java   |    37 +
 .../ntriples/GZippedNTriplesInputTest.java      |    41 +
 .../GZippedWholeFileNTriplesInputTest.java      |    38 +
 ...stractCompressedRdfJsonInputFormatTests.java |    74 +
 .../rdfjson/BZippedRdfJsonInputTest.java        |    37 +
 .../rdfjson/DeflatedRdfJsonInputTest.java       |    37 +
 .../rdfjson/GZippedRdfJsonInputTest.java        |    37 +
 ...bstractCompressedRdfXmlInputFormatTests.java |    75 +
 .../rdfxml/BZippedRdfXmlInputTest.java          |    37 +
 .../rdfxml/DeflatedRdfXmlInputTest.java         |    37 +
 .../rdfxml/GZippedRdfXmlInputTest.java          |    37 +
 ...actCompressedThriftQuadInputFormatTests.java |    72 +
 ...tCompressedThriftTripleInputFormatTests.java |    72 +
 .../thrift/BZippedThriftQuadInputTest.java      |    34 +
 .../thrift/BZippedThriftTripleInputTest.java    |    34 +
 .../thrift/DeflatedThriftQuadInputTest.java     |    34 +
 .../thrift/DeflatedThriftTripleInputTest.java   |    34 +
 .../thrift/GZippedThriftQuadInputTest.java      |    34 +
 .../thrift/GZippedThriftTripleInputTest.java    |    34 +
 .../AbstractCompressedTriGInputFormatTests.java |    72 +
 .../compressed/trig/BZippedTriGInputTest.java   |    37 +
 .../compressed/trig/DeflatedTriGInputTest.java  |    37 +
 .../compressed/trig/GZippedTriGInputTest.java   |    37 +
 .../AbstractCompressedTriXInputFormatTests.java |    72 +
 .../compressed/trix/BZippedTriXInputTest.java   |    35 +
 .../compressed/trix/DeflatedTriXInputTest.java  |    35 +
 .../compressed/trix/GZippedTriXInputTest.java   |    35 +
 ...bstractCompressedTurtleInputFormatTests.java |    75 +
 .../turtle/BZippedTurtleInputTest.java          |    37 +
 .../turtle/DeflatedTurtleInputTest.java         |    37 +
 .../turtle/GZippedTurtleInputTest.java          |    37 +
 .../io/input/jsonld/JsonLDQuadInputTest.java    |    50 +
 .../io/input/jsonld/JsonLDTripleInputTest.java  |    50 +
 .../io/input/nquads/BlockedNQuadsInputTest.java |    51 +
 .../rdf/io/input/nquads/NQuadsInputTest.java    |    44 +
 .../input/nquads/WholeFileNQuadsInputTest.java  |    51 +
 .../ntriples/BlockedNTriplesInputTest.java      |    50 +
 .../io/input/ntriples/NTriplesInputTest.java    |    44 +
 .../ntriples/WholeFileNTriplesInputTest.java    |    52 +
 .../rdf/io/input/rdfjson/RdfJsonInputTest.java  |    51 +
 .../rdf/io/input/rdfxml/RdfXmlInputTest.java    |    51 +
 .../io/input/thrift/ThriftQuadInputTest.java    |    51 +
 .../io/input/thrift/ThriftTripleInputTest.java  |    51 +
 .../hadoop/rdf/io/input/trig/TriGInputTest.java |    50 +
 .../hadoop/rdf/io/input/trix/TriXInputTest.java |    50 +
 .../rdf/io/input/turtle/TurtleInputTest.java    |    50 +
 .../util/AbstractTrackableInputStreamTests.java |   701 +
 .../rdf/io/input/util/BlockInputStreamTest.java |   240 +
 .../io/input/util/TrackedInputStreamTest.java   |    39 +
 .../AbstractNodeTupleOutputFormatTests.java     |   255 +
 .../output/AbstractQuadOutputFormatTests.java   |    51 +
 .../output/AbstractTripleOutputFormatTests.java |    47 +
 .../io/output/jsonld/JsonLdQuadOutputTest.java  |    47 +
 .../output/jsonld/JsonLdTripleOutputTest.java   |    47 +
 .../rdf/io/output/nquads/NQuadsOutputTest.java  |    51 +
 .../io/output/ntriples/NTriplesOutputTest.java  |    51 +
 .../io/output/rdfjson/RdfJsonOutputTest.java    |    51 +
 .../rdf/io/output/rdfxml/RdfXmlOutputTest.java  |    51 +
 .../io/output/thrift/ThriftQuadOutputTest.java  |    48 +
 .../output/thrift/ThriftTripleOutputTest.java   |    48 +
 .../io/output/trig/BatchedTriGOutputTest.java   |    92 +
 .../io/output/trig/StreamedTriGOutputTest.java  |    92 +
 .../output/trig/TriGBlankNodeOutputTests.java   |   120 +
 .../rdf/io/output/trix/TriXOutputTest.java      |    47 +
 .../output/turtle/BatchedTurtleOutputTest.java  |    92 +
 .../output/turtle/StreamedTurtleOutputTest.java |    92 +
 .../turtle/TurtleBlankNodeOutputTests.java      |   118 +
 .../io/registry/TestHadoopRdfIORegistry.java    |   186 +
 .../src/test/resources/log4j.properties         |    12 +
 jena-elephas/jena-elephas-mapreduce/pom.xml     |    87 +
 .../jena/hadoop/rdf/mapreduce/KeyMapper.java    |    54 +
 .../hadoop/rdf/mapreduce/KeyPlusNullMapper.java |    55 +
 .../jena/hadoop/rdf/mapreduce/KeyReducer.java   |    39 +
 .../hadoop/rdf/mapreduce/NullPlusKeyMapper.java |    55 +
 .../rdf/mapreduce/NullPlusKeyReducer.java       |    59 +
 .../rdf/mapreduce/NullPlusValueMapper.java      |    55 +
 .../rdf/mapreduce/NullPlusValueReducer.java     |    64 +
 .../rdf/mapreduce/RdfMapReduceConstants.java    |    67 +
 .../jena/hadoop/rdf/mapreduce/SwapMapper.java   |    55 +
 .../jena/hadoop/rdf/mapreduce/SwapReducer.java  |    43 +
 .../hadoop/rdf/mapreduce/TextCountReducer.java  |    49 +
 .../jena/hadoop/rdf/mapreduce/ValueMapper.java  |    54 +
 .../rdf/mapreduce/ValuePlusNullMapper.java      |    55 +
 .../jena/hadoop/rdf/mapreduce/ValueReducer.java |    44 +
 ...tractCharacteristicSetGeneratingReducer.java |   179 +
 .../CharacteristicSetReducer.java               |    68 +
 .../QuadCharacteristicSetGeneratingReducer.java |    39 +
 ...ripleCharacteristicSetGeneratingReducer.java |    40 +
 .../count/AbstractNodeTupleNodeCountMapper.java |    66 +
 .../rdf/mapreduce/count/NodeCountReducer.java   |    50 +
 .../mapreduce/count/QuadNodeCountMapper.java    |    44 +
 .../mapreduce/count/TripleNodeCountMapper.java  |    42 +
 .../datatypes/QuadDataTypeCountMapper.java      |    56 +
 .../datatypes/TripleDataTypeCountMapper.java    |    56 +
 .../AbstractNodeTupleNamespaceCountMapper.java  |   135 +
 .../namespaces/QuadNamespaceCountMapper.java    |    44 +
 .../namespaces/TripleNamespaceCountMapper.java  |    44 +
 .../count/positional/QuadGraphCountMapper.java  |    42 +
 .../count/positional/QuadObjectCountMapper.java |    42 +
 .../positional/QuadPredicateCountMapper.java    |    42 +
 .../positional/QuadSubjectCountMapper.java      |    41 +
 .../positional/TripleObjectCountMapper.java     |    41 +
 .../positional/TriplePredicateCountMapper.java  |    42 +
 .../positional/TripleSubjectCountMapper.java    |    41 +
 .../filter/AbstractNodeTupleFilterMapper.java   |    76 +
 .../filter/AbstractQuadFilterMapper.java        |    35 +
 .../filter/AbstractTripleFilterMapper.java      |    35 +
 .../filter/GroundQuadFilterMapper.java          |    47 +
 .../filter/GroundTripleFilterMapper.java        |    47 +
 .../mapreduce/filter/ValidQuadFilterMapper.java |    48 +
 .../filter/ValidTripleFilterMapper.java         |    47 +
 .../AbstractQuadFilterByPositionMapper.java     |   171 +
 .../AbstractTripleFilterByPositionMapper.java   |   141 +
 .../positional/QuadFilterByGraphUriMapper.java  |    76 +
 .../positional/QuadFilterByObjectUriMapper.java |    76 +
 .../positional/QuadFilterByPredicateMapper.java |    76 +
 .../QuadFilterBySubjectUriMapper.java           |    76 +
 .../TripleFilterByObjectUriMapper.java          |    71 +
 .../TripleFilterByPredicateUriMapper.java       |    71 +
 .../TripleFilterBySubjectUriMapper.java         |    71 +
 .../group/AbstractNodeTupleGroupingMapper.java  |    60 +
 .../group/AbstractQuadGroupingMapper.java       |    50 +
 .../group/AbstractTripleGroupingMapper.java     |    44 +
 .../mapreduce/group/QuadGroupByGraphMapper.java |    39 +
 .../group/QuadGroupByObjectMapper.java          |    39 +
 .../group/QuadGroupByPredicateMapper.java       |    39 +
 .../group/QuadGroupBySubjectMapper.java         |    39 +
 .../group/TripleGroupByObjectMapper.java        |    41 +
 .../group/TripleGroupByPredicateMapper.java     |    41 +
 .../group/TripleGroupBySubjectMapper.java       |    41 +
 .../AbstractNodeTupleSplitToNodesMapper.java    |    60 +
 .../AbstractNodeTupleSplitWithNodesMapper.java  |    60 +
 .../mapreduce/split/QuadSplitToNodesMapper.java |    43 +
 .../split/QuadSplitWithNodesMapper.java         |    43 +
 .../split/TripleSplitToNodesMapper.java         |    41 +
 .../split/TripleSplitWithNodesMapper.java       |    41 +
 .../transform/AbstractTriplesToQuadsMapper.java |    60 +
 .../transform/QuadsToTriplesMapper.java         |    46 +
 .../TriplesToQuadsBySubjectMapper.java          |    40 +
 .../TriplesToQuadsConstantGraphMapper.java      |    75 +
 .../rdf/mapreduce/AbstractMapReduceTests.java   |    69 +
 .../rdf/mapreduce/AbstractMapperTests.java      |    69 +
 .../rdf/mapreduce/TestDistinctTriples.java      |   129 +
 ...CharacteristicSetGeneratingReducerTests.java |   185 +
 .../CharacteristicSetReducerTest.java           |   192 +
 ...eCharacteristicSetGeneratingReducerTest.java |    59 +
 .../AbstractNodeTupleNodeCountReducedTests.java |   149 +
 .../count/AbstractNodeTupleNodeCountTests.java  |   138 +
 .../count/QuadNodeCountMapReduceTest.java       |    67 +
 .../count/QuadNodeCountMapperTest.java          |    59 +
 .../count/TripleNodeCountMapReduceTest.java     |    66 +
 .../count/TripleNodeCountMapperTest.java        |    58 +
 .../filter/AbstractNodeTupleFilterTests.java    |   146 +
 .../filter/AbstractQuadValidityFilterTests.java |    86 +
 .../AbstractTripleValidityFilterTests.java      |    73 +
 .../TripleFilterByNoPredicateMapperTest.java    |    49 +
 .../TripleFilterByPredicateMapperTest.java      |    80 +
 ...leInvertedFilterByNoPredicateMapperTest.java |    54 +
 ...ipleInvertedFilterByPredicateMapperTest.java |    87 +
 .../filter/ValidQuadFilterMapperTest.java       |    40 +
 .../filter/ValidTripleFilterMapperTest.java     |    40 +
 .../group/AbstractNodeTupleGroupingTests.java   |   114 +
 .../group/AbstractQuadGroupingTests.java        |    43 +
 .../group/AbstractTripleGroupingTests.java      |    41 +
 .../group/QuadGroupByGraphMapperTest.java       |    46 +
 .../group/QuadGroupByObjectMapperTest.java      |    46 +
 .../group/QuadGroupByPredicateMapperTest.java   |    46 +
 .../group/QuadGroupBySubjectMapperTest.java     |    46 +
 .../group/TripleGroupByObjectMapperTest.java    |    46 +
 .../group/TripleGroupByPredicateMapperTest.java |    46 +
 .../group/TripleGroupBySubjectMapperTest.java   |    46 +
 .../AbstractNodeTupleSplitToNodesTests.java     |   116 +
 .../AbstractNodeTupleSplitWithNodesTests.java   |   116 +
 .../split/AbstractQuadSplitToNodesTests.java    |    53 +
 .../split/AbstractQuadSplitWithNodesTests.java  |    53 +
 .../split/AbstractTripleSplitToNodesTests.java  |    52 +
 .../AbstractTripleSplitWithNodesTests.java      |    52 +
 .../split/QuadSplitToNodesMapperTest.java       |    41 +
 .../split/QuadSplitWithNodesMapperTest.java     |    41 +
 .../split/TripleSplitToNodesMapperTest.java     |    41 +
 .../split/TripleSplitWithNodesMapperTest.java   |    42 +
 .../transform/QuadsToTriplesMapperTest.java     |   113 +
 .../TriplesToQuadsBySubjectMapperTest.java      |   113 +
 .../TriplesToQuadsConstantGraphMapperTest.java  |   113 +
 .../src/test/resources/log4j.properties         |    12 +
 jena-elephas/jena-elephas-stats/hadoop-job.xml  |    46 +
 jena-elephas/jena-elephas-stats/pom.xml         |   102 +
 .../apache/jena/hadoop/rdf/stats/RdfStats.java  |   425 +
 .../jena/hadoop/rdf/stats/jobs/JobFactory.java  |   821 +
 jena-elephas/pom.xml                            |   110 +
 jena-extras/jena-querybuilder/pom.xml           |     2 +-
 .../arq/querybuilder/AbstractQueryBuilder.java  |     2 +-
 .../jena/arq/AbstractRegexpBasedTest.java       |    14 +-
 .../querybuilder/AbstractQueryBuilderTest.java  |     2 +-
 .../arq/querybuilder/SelectBuilderTest.java     |     3 +-
 .../querybuilder/clauses/WhereClauseTest.java   |    79 +-
 .../handlers/SolutionModifierHandlerTest.java   |     2 +-
 .../querybuilder/handlers/WhereHandlerTest.java |     2 +-
 jena-extras/pom.xml                             |     2 +-
 jena-fuseki/.gitignore                          |     1 +
 jena-fuseki/NOTICE                              |     2 +-
 jena-fuseki/dist/NOTICE                         |     2 +-
 jena-fuseki/fuseki                              |    19 +-
 jena-fuseki/pages/xml-to-html-links.xsl         |    47 +-
 jena-fuseki/pom.xml                             |     6 +-
 jena-fuseki/run-fuseki                          |     4 +-
 jena-fuseki/run_cp                              |    25 -
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |    88 +-
 .../jena/fuseki/servlets/SPARQL_Query.java      |    18 +-
 jena-fuseki/src/main/resources/META-INF/NOTICE  |     2 +-
 jena-fuseki2/D.trig                             |    20 -
 jena-fuseki2/D.ttl                              |    19 -
 jena-fuseki2/Data/books.ttl                     |    62 -
 jena-fuseki2/Data/test_abox.ttl                 |    21 -
 jena-fuseki2/Data/test_data_rdfs.ttl            |    28 -
 jena-fuseki2/Data/test_tbox.ttl                 |    25 -
 jena-fuseki2/LICENSE                            |    17 +-
 jena-fuseki2/NOTICE                             |     2 +-
 .../apache-jena-fuseki/assembly-dist.xml        |    99 +
 jena-fuseki2/apache-jena-fuseki/backup          |    22 +
 jena-fuseki2/apache-jena-fuseki/bin/s-delete    |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-get       |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-head      |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-post      |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-put       |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-query     |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-update    |   707 +
 .../apache-jena-fuseki/bin/s-update-form        |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/soh         |   707 +
 jena-fuseki2/apache-jena-fuseki/dist/ABOUT      |     1 +
 jena-fuseki2/apache-jena-fuseki/dist/LICENSE    |   617 +
 jena-fuseki2/apache-jena-fuseki/dist/NOTICE     |   216 +
 jena-fuseki2/apache-jena-fuseki/fuseki          |   486 +
 jena-fuseki2/apache-jena-fuseki/fuseki-server   |    80 +
 .../apache-jena-fuseki/fuseki-server.bat        |    28 +
 jena-fuseki2/apache-jena-fuseki/pom.xml         |    95 +
 jena-fuseki2/assembly-dist.xml                  |    88 -
 jena-fuseki2/backup                             |    22 -
 jena-fuseki2/bin/s-delete                       |   707 -
 jena-fuseki2/bin/s-get                          |   707 -
 jena-fuseki2/bin/s-head                         |   707 -
 jena-fuseki2/bin/s-post                         |   707 -
 jena-fuseki2/bin/s-put                          |   707 -
 jena-fuseki2/bin/s-query                        |   707 -
 jena-fuseki2/bin/s-update                       |   707 -
 jena-fuseki2/bin/s-update-form                  |   707 -
 jena-fuseki2/bin/soh                            |   707 -
 jena-fuseki2/dist/ABOUT                         |     1 -
 jena-fuseki2/dist/LICENSE                       |   608 -
 jena-fuseki2/dist/NOTICE                        |   216 -
 jena-fuseki2/dwim                               |    19 -
 jena-fuseki2/dwim-upload                        |    48 -
 jena-fuseki2/fuseki                             |   477 -
 jena-fuseki2/fuseki-server                      |    64 -
 jena-fuseki2/fuseki-server.bat                  |    19 -
 jena-fuseki2/jena-fuseki-core/fuseki-dev        |    77 +
 jena-fuseki2/jena-fuseki-core/make_cp_mvn       |    50 +
 jena-fuseki2/jena-fuseki-core/pom.xml           |   314 +
 .../main/java/org/apache/jena/fuseki/DEF.java   |    79 +
 .../java/org/apache/jena/fuseki/Fuseki.java     |   227 +
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |    49 +
 .../jena/fuseki/FusekiConfigException.java      |    28 +
 .../org/apache/jena/fuseki/FusekiException.java |    29 +
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   258 +
 .../org/apache/jena/fuseki/FusekiLogging.java   |   171 +
 .../jena/fuseki/FusekiNotFoundException.java    |    26 +
 .../jena/fuseki/FusekiRequestException.java     |    57 +
 .../org/apache/jena/fuseki/async/AsyncPool.java |    97 +
 .../org/apache/jena/fuseki/async/AsyncTask.java |   114 +
 .../fuseki/authz/AuthorizationFilter403.java    |    59 +
 .../apache/jena/fuseki/authz/DenyFilter.java    |    33 +
 .../jena/fuseki/authz/LocalhostFilter.java      |    62 +
 .../org/apache/jena/fuseki/build/Builder.java   |   149 +
 .../jena/fuseki/build/DataServiceDesc.java      |   107 +
 .../apache/jena/fuseki/build/FusekiConfig.java  |   261 +
 .../org/apache/jena/fuseki/build/Template.java  |    52 +
 .../jena/fuseki/build/TemplateFunctions.java    |    87 +
 .../org/apache/jena/fuseki/cmd/FusekiCmd.java   |   341 +
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |   206 +
 .../org/apache/jena/fuseki/conneg/WebLib.java   |    60 +
 .../jena/fuseki/jetty/FusekiErrorHandler.java   |    95 +
 .../apache/jena/fuseki/jetty/JettyFuseki.java   |   310 +
 .../jena/fuseki/jetty/JettyServerConfig.java    |    51 +
 .../apache/jena/fuseki/mgt/ActionAsyncTask.java |    70 +
 .../apache/jena/fuseki/mgt/ActionBackup.java    |    84 +
 .../jena/fuseki/mgt/ActionContainerItem.java    |    94 +
 .../org/apache/jena/fuseki/mgt/ActionCtl.java   |    97 +
 .../apache/jena/fuseki/mgt/ActionDatasets.java  |   404 +
 .../org/apache/jena/fuseki/mgt/ActionItem.java  |    45 +
 .../org/apache/jena/fuseki/mgt/ActionLogs.java  |    59 +
 .../org/apache/jena/fuseki/mgt/ActionPing.java  |    78 +
 .../jena/fuseki/mgt/ActionServerStatus.java     |   114 +
 .../org/apache/jena/fuseki/mgt/ActionSleep.java |    98 +
 .../org/apache/jena/fuseki/mgt/ActionStats.java |   214 +
 .../org/apache/jena/fuseki/mgt/ActionTasks.java |   125 +
 .../java/org/apache/jena/fuseki/mgt/Async.java  |    68 +
 .../java/org/apache/jena/fuseki/mgt/Backup.java |   102 +
 .../org/apache/jena/fuseki/mgt/DumpServlet.java |   312 +
 .../org/apache/jena/fuseki/mgt/JsonConst.java   |    52 +
 .../apache/jena/fuseki/mgt/JsonDescription.java |    73 +
 .../org/apache/jena/fuseki/mgt/MgtConst.java    |    30 +
 .../java/org/apache/jena/fuseki/mgt/MgtJMX.java |    61 +
 .../fuseki/migrate/DatasetGraphSwitchable.java  |    88 +
 .../jena/fuseki/migrate/GraphLoadUtils.java     |    76 +
 .../jena/fuseki/migrate/StreamRDFLimited.java   |    63 +
 .../org/apache/jena/fuseki/server/Counter.java  |    34 +
 .../jena/fuseki/server/CounterMXBean.java       |    25 +
 .../apache/jena/fuseki/server/CounterName.java  |    84 +
 .../apache/jena/fuseki/server/CounterSet.java   |    70 +
 .../org/apache/jena/fuseki/server/Counters.java |    25 +
 .../jena/fuseki/server/DataAccessPoint.java     |    75 +
 .../fuseki/server/DataAccessPointRegistry.java  |    37 +
 .../apache/jena/fuseki/server/DataService.java  |   199 +
 .../jena/fuseki/server/DatasetMXBean.java       |    35 +
 .../jena/fuseki/server/DatasetStatus.java       |    40 +
 .../org/apache/jena/fuseki/server/Endpoint.java |    68 +
 .../apache/jena/fuseki/server/FusekiEnv.java    |   164 +
 .../apache/jena/fuseki/server/FusekiServer.java |   395 +
 .../server/FusekiServerEnvironmentInit.java     |    41 +
 .../fuseki/server/FusekiServerListener.java     |    81 +
 .../apache/jena/fuseki/server/FusekiVocab.java  |    77 +
 .../jena/fuseki/server/OperationName.java       |    37 +
 .../apache/jena/fuseki/server/RequestLog.java   |   148 +
 .../jena/fuseki/server/ServerInitialConfig.java |    39 +
 .../jena/fuseki/server/ServiceMXBean.java       |    32 +
 .../fuseki/server/ShiroEnvironmentLoader.java   |   164 +
 .../apache/jena/fuseki/server/SystemState.java  |   108 +
 .../apache/jena/fuseki/servlets/ActionBase.java |   265 +
 .../fuseki/servlets/ActionErrorException.java   |    32 +
 .../apache/jena/fuseki/servlets/ActionLib.java  |   180 +
 .../apache/jena/fuseki/servlets/ActionREST.java |   161 +
 .../jena/fuseki/servlets/ActionSPARQL.java      |   207 +
 .../fuseki/servlets/ConcurrencyPolicyMRSW.java  |   113 +
 .../jena/fuseki/servlets/FusekiFilter.java      |    87 +
 .../apache/jena/fuseki/servlets/HttpAction.java |   387 +
 .../servlets/HttpServletResponseTracker.java    |   140 +
 .../jena/fuseki/servlets/NullOutputStream.java  |    53 +
 .../apache/jena/fuseki/servlets/REST_Quads.java |    68 +
 .../jena/fuseki/servlets/REST_Quads_R.java      |    99 +
 .../jena/fuseki/servlets/REST_Quads_RW.java     |   136 +
 .../jena/fuseki/servlets/ResponseCallback.java  |    24 +
 .../jena/fuseki/servlets/ResponseModel.java     |   136 +
 .../jena/fuseki/servlets/ResponseOps.java       |    94 +
 .../jena/fuseki/servlets/ResponseResultSet.java |   322 +
 .../apache/jena/fuseki/servlets/SPARQL_GSP.java |   214 +
 .../jena/fuseki/servlets/SPARQL_GSP_R.java      |   123 +
 .../jena/fuseki/servlets/SPARQL_GSP_RW.java     |   208 +
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |   101 +
 .../jena/fuseki/servlets/SPARQL_Query.java      |   396 +
 .../fuseki/servlets/SPARQL_QueryDataset.java    |    60 +
 .../fuseki/servlets/SPARQL_QueryGeneral.java    |   142 +
 .../fuseki/servlets/SPARQL_UberServlet.java     |   359 +
 .../jena/fuseki/servlets/SPARQL_Update.java     |   286 +
 .../jena/fuseki/servlets/SPARQL_Upload.java     |   291 +
 .../jena/fuseki/servlets/ServletBase.java       |    98 +
 .../apache/jena/fuseki/servlets/ServletOps.java |   209 +
 .../org/apache/jena/fuseki/servlets/Upload.java |   164 +
 .../jena/fuseki/servlets/UploadDetails.java     |    86 +
 .../jena/fuseki/validation/DataValidator.java   |   131 +
 .../jena/fuseki/validation/IRIValidator.java    |   168 +
 .../jena/fuseki/validation/QueryValidator.java  |   154 +
 .../jena/fuseki/validation/UpdateValidator.java |    91 +
 .../fuseki/validation/ValidationAction.java     |    95 +
 .../jena/fuseki/validation/ValidationError.java |    24 +
 .../fuseki/validation/ValidatorBaseJson.java    |   201 +
 .../src/main/resources/META-INF/DEPENDENCIES    |    24 +
 .../src/main/resources/META-INF/LICENSE         |   253 +
 .../src/main/resources/META-INF/NOTICE          |    16 +
 .../apache/jena/fuseki/fuseki-properties.xml    |     8 +
 .../org/apache/jena/fuseki/log4j.properties     |    42 +
 .../org/apache/jena/fuseki/server/config.ttl    |    30 +
 .../org/apache/jena/fuseki/server/shiro.ini     |    37 +
 .../jena/fuseki/server/templates/config-mem     |    27 +
 .../jena/fuseki/server/templates/config-service |    23 +
 .../jena/fuseki/server/templates/config-tdb     |    36 +
 .../jena/fuseki/server/templates/config-tdb-dir |    35 +
 .../jena/fuseki/server/templates/config-tdb-mem |    36 +
 .../src/main/webapp/WEB-INF/web.xml             |   269 +
 .../src/main/webapp/admin-logs.html             |    72 +
 .../main/webapp/css/bootstrap-select.min.css    |     7 +
 .../src/main/webapp/css/bootstrap-theme.css.map |     1 +
 .../src/main/webapp/css/bootstrap-theme.min.css |     7 +
 .../src/main/webapp/css/bootstrap.css.map       |     1 +
 .../src/main/webapp/css/bootstrap.min.css       |     7 +
 .../src/main/webapp/css/codemirror.min.css      |     1 +
 .../src/main/webapp/css/font-awesome.min.css    |     4 +
 .../src/main/webapp/css/fui.css                 |   191 +
 .../webapp/css/jquery.fileupload-noscript.css   |    22 +
 .../css/jquery.fileupload-ui-noscript.css       |    17 +
 .../main/webapp/css/jquery.fileupload-ui.css    |    57 +
 .../src/main/webapp/css/jquery.fileupload.css   |    36 +
 .../src/main/webapp/css/pivot.min.css           |     1 +
 .../src/main/webapp/css/qonsole.css             |   172 +
 .../src/main/webapp/css/yasqe.min.css           |     1 +
 .../src/main/webapp/css/yasr.min.css            |     1 +
 .../src/main/webapp/dataset.html                |   244 +
 .../src/main/webapp/documentation.html          |    80 +
 .../src/main/webapp/fonts/FontAwesome.otf       |   Bin 0 -> 75188 bytes
 .../main/webapp/fonts/fontawesome-webfont.eot   |   Bin 0 -> 72449 bytes
 .../main/webapp/fonts/fontawesome-webfont.svg   |   504 +
 .../main/webapp/fonts/fontawesome-webfont.ttf   |   Bin 0 -> 141564 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff  |   Bin 0 -> 83760 bytes
 .../fonts/glyphicons-halflings-regular.eot      |   Bin 0 -> 20335 bytes
 .../fonts/glyphicons-halflings-regular.svg      |   229 +
 .../fonts/glyphicons-halflings-regular.ttf      |   Bin 0 -> 41280 bytes
 .../fonts/glyphicons-halflings-regular.woff     |   Bin 0 -> 23320 bytes
 .../src/main/webapp/images/back_disabled.png    |   Bin 0 -> 1361 bytes
 .../src/main/webapp/images/back_enabled.png     |   Bin 0 -> 1379 bytes
 .../main/webapp/images/back_enabled_hover.png   |   Bin 0 -> 1375 bytes
 .../src/main/webapp/images/favicon.ico          |   Bin 0 -> 1085 bytes
 .../src/main/webapp/images/forward_disabled.png |   Bin 0 -> 1363 bytes
 .../src/main/webapp/images/forward_enabled.png  |   Bin 0 -> 1380 bytes
 .../webapp/images/forward_enabled_hover.png     |   Bin 0 -> 1379 bytes
 .../webapp/images/jena-logo-notext-small.png    |   Bin 0 -> 2469 bytes
 .../src/main/webapp/images/sort_asc.png         |   Bin 0 -> 1118 bytes
 .../main/webapp/images/sort_asc_disabled.png    |   Bin 0 -> 1050 bytes
 .../src/main/webapp/images/sort_both.png        |   Bin 0 -> 1136 bytes
 .../src/main/webapp/images/sort_desc.png        |   Bin 0 -> 1127 bytes
 .../main/webapp/images/sort_desc_disabled.png   |   Bin 0 -> 1045 bytes
 .../src/main/webapp/images/wait30.gif           |   Bin 0 -> 6337 bytes
 .../jena-fuseki-core/src/main/webapp/index.html |   103 +
 .../src/main/webapp/js/app/controllers/.svnkeep |     0
 .../js/app/controllers/dataset-controller.js    |    69 +
 .../js/app/controllers/index-controller.js      |    50 +
 .../js/app/controllers/manage-controller.js     |    39 +
 .../js/app/controllers/query-controller.js      |    72 +
 .../js/app/controllers/upload-controller.js     |    42 +
 .../js/app/controllers/validation-controller.js |    38 +
 .../src/main/webapp/js/app/fui.js               |    33 +
 .../src/main/webapp/js/app/layouts/.svnkeep     |     0
 .../src/main/webapp/js/app/main.dataset.js      |    31 +
 .../src/main/webapp/js/app/main.index.js        |    24 +
 .../src/main/webapp/js/app/main.manage.js       |    27 +
 .../src/main/webapp/js/app/main.validation.js   |    24 +
 .../main/webapp/js/app/models/dataset-stats.js  |   102 +
 .../src/main/webapp/js/app/models/dataset.js    |   251 +
 .../main/webapp/js/app/models/fuseki-server.js  |   155 +
 .../src/main/webapp/js/app/models/task.js       |   105 +
 .../webapp/js/app/models/validation-options.js  |    85 +
 .../src/main/webapp/js/app/qonsole-config.js    |    26 +
 .../src/main/webapp/js/app/routers/.svnkeep     |     0
 .../main/webapp/js/app/services/ping-service.js |    54 +
 .../js/app/services/validation-service.js       |    98 +
 .../webapp/js/app/templates/dataset-edit.tpl    |    58 +
 .../webapp/js/app/templates/dataset-info.tpl    |    40 +
 .../js/app/templates/dataset-management.tpl     |    53 +
 .../js/app/templates/dataset-selection-list.tpl |    22 +
 .../js/app/templates/dataset-selector.tpl       |    15 +
 .../js/app/templates/dataset-simple-create.tpl  |    79 +
 .../webapp/js/app/templates/dataset-stats.tpl   |    14 +
 .../webapp/js/app/templates/file-upload.tpl     |    46 +
 .../webapp/js/app/templates/uploadable-file.tpl |    23 +
 .../src/main/webapp/js/app/util/page-utils.js   |    33 +
 .../src/main/webapp/js/app/views/.svnkeep       |     0
 .../main/webapp/js/app/views/dataset-edit.js    |   205 +
 .../main/webapp/js/app/views/dataset-info.js    |    76 +
 .../webapp/js/app/views/dataset-management.js   |   163 +
 .../js/app/views/dataset-selection-list.js      |    58 +
 .../webapp/js/app/views/dataset-selector.js     |    84 +
 .../js/app/views/dataset-simple-create.js       |   100 +
 .../main/webapp/js/app/views/dataset-stats.js   |    41 +
 .../js/app/views/datasets-dropdown-list.js      |    43 +
 .../src/main/webapp/js/app/views/file-upload.js |   225 +
 .../webapp/js/app/views/tabbed-view-manager.js  |    63 +
 .../main/webapp/js/app/views/uploadable-file.js |    39 +
 .../webapp/js/app/views/validation-options.js   |    54 +
 .../src/main/webapp/js/common-config.js         |    93 +
 .../main/webapp/js/lib/addon/fold/brace-fold.js |   105 +
 .../webapp/js/lib/addon/fold/comment-fold.js    |    57 +
 .../main/webapp/js/lib/addon/fold/foldcode.js   |   145 +
 .../main/webapp/js/lib/addon/fold/foldgutter.js |   134 +
 .../main/webapp/js/lib/addon/fold/xml-fold.js   |   181 +
 .../src/main/webapp/js/lib/backbone-min.js      |     2 +
 .../src/main/webapp/js/lib/backbone.js          |  1581 ++
 .../main/webapp/js/lib/backbone.marionette.js   |  2385 +++
 .../main/webapp/js/lib/bootstrap-select.min.js  |     8 +
 .../src/main/webapp/js/lib/bootstrap.min.js     |     6 +
 .../src/main/webapp/js/lib/html5shiv.js         |     8 +
 .../src/main/webapp/js/lib/jquery-1.10.2.js     |  9789 +++++++++
 .../src/main/webapp/js/lib/jquery-1.10.2.min.js |     6 +
 .../src/main/webapp/js/lib/jquery-ui.min.js     |     7 +
 .../main/webapp/js/lib/jquery.dataTables.min.js |   157 +
 .../src/main/webapp/js/lib/jquery.fileupload.js |  1426 ++
 .../webapp/js/lib/jquery.fileupload.local.js    |  1428 ++
 .../src/main/webapp/js/lib/jquery.form.js       |  1278 ++
 .../webapp/js/lib/jquery.iframe-transport.js    |   214 +
 .../src/main/webapp/js/lib/jquery.ui.widget.js  |   530 +
 .../main/webapp/js/lib/jquery.xdomainrequest.js |    90 +
 .../src/main/webapp/js/lib/lib/codemirror.js    |  7638 +++++++
 .../webapp/js/lib/mode/javascript/javascript.js |   683 +
 .../main/webapp/js/lib/mode/sparql/sparql.js    |   160 +
 .../main/webapp/js/lib/mode/turtle/turtle.js    |   160 +
 .../src/main/webapp/js/lib/mode/xml/xml.js      |   384 +
 .../src/main/webapp/js/lib/pivot.js             |  1363 ++
 .../src/main/webapp/js/lib/pivot.min.js         |     2 +
 .../src/main/webapp/js/lib/pivot.min.js.map     |     1 +
 .../src/main/webapp/js/lib/plugins/text.js      |   386 +
 .../src/main/webapp/js/lib/qonsole.js           |   570 +
 .../src/main/webapp/js/lib/refresh.sh           |    21 +
 .../src/main/webapp/js/lib/require.js           |  2076 ++
 .../src/main/webapp/js/lib/require.min.js       |    36 +
 .../src/main/webapp/js/lib/respond.min.js       |     6 +
 .../src/main/webapp/js/lib/sprintf-0.7-beta1.js |   183 +
 .../src/main/webapp/js/lib/underscore.js        |  1276 ++
 .../src/main/webapp/js/lib/yasqe.min.js         |     5 +
 .../src/main/webapp/js/lib/yasqe.min.js.map     |     1 +
 .../src/main/webapp/js/lib/yasr.min.js          |     5 +
 .../src/main/webapp/js/lib/yasr.min.js.map      |     1 +
 .../src/main/webapp/manage.html                 |   107 +
 .../src/main/webapp/services.html               |    75 +
 .../src/main/webapp/test/test-fuseki-config.ttl |    27 +
 .../src/main/webapp/validate.html               |   146 +
 .../apache/jena/fuseki/AbstractFusekiTest.java  |    47 +
 .../java/org/apache/jena/fuseki/FileSender.java |    87 +
 .../java/org/apache/jena/fuseki/ServerTest.java |   157 +
 .../java/org/apache/jena/fuseki/TS_Fuseki.java  |    75 +
 .../java/org/apache/jena/fuseki/TestAdmin.java  |   538 +
 .../java/org/apache/jena/fuseki/TestAuth.java   |   405 +
 .../org/apache/jena/fuseki/TestDatasetOps.java  |   154 +
 .../org/apache/jena/fuseki/TestFileUpload.java  |   128 +
 .../java/org/apache/jena/fuseki/TestQuery.java  |   115 +
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |    95 +
 .../fuseki/http/TestDatasetAccessorHTTP.java    |   261 +
 .../http/TestDatasetGraphAccessorHTTP.java      |    43 +
 .../org/apache/jena/fuseki/http/TestHttpOp.java |   233 +
 .../jena-fuseki-core/testing/config-ds-1.ttl    |    15 +
 jena-fuseki2/jena-fuseki-server/.gitignore      |     1 +
 jena-fuseki2/jena-fuseki-server/pom.xml         |   127 +
 jena-fuseki2/jena-fuseki-war/pom.xml            |   109 +
 jena-fuseki2/make-html                          |    29 -
 jena-fuseki2/make_cp_mvn                        |    50 -
 jena-fuseki2/pom.xml                            |   381 +-
 jena-fuseki2/run-fuseki                         |    77 -
 .../main/java/org/apache/jena/fuseki/DEF.java   |    79 -
 .../java/org/apache/jena/fuseki/Fuseki.java     |   226 -
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |   334 -
 .../jena/fuseki/FusekiConfigException.java      |    28 -
 .../org/apache/jena/fuseki/FusekiException.java |    29 -
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   260 -
 .../org/apache/jena/fuseki/FusekiLogging.java   |   140 -
 .../jena/fuseki/FusekiNotFoundException.java    |    26 -
 .../jena/fuseki/FusekiRequestException.java     |    57 -
 .../org/apache/jena/fuseki/async/AsyncPool.java |    97 -
 .../org/apache/jena/fuseki/async/AsyncTask.java |   114 -
 .../fuseki/authz/AuthorizationFilter403.java    |    59 -
 .../apache/jena/fuseki/authz/DenyFilter.java    |    33 -
 .../jena/fuseki/authz/LocalhostFilter.java      |    62 -
 .../org/apache/jena/fuseki/build/Builder.java   |   149 -
 .../jena/fuseki/build/DataServiceDesc.java      |   107 -
 .../apache/jena/fuseki/build/FusekiConfig.java  |   261 -
 .../org/apache/jena/fuseki/build/Template.java  |    52 -
 .../jena/fuseki/build/TemplateFunctions.java    |    68 -
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |   123 -
 .../org/apache/jena/fuseki/conneg/WebLib.java   |    60 -
 .../jena/fuseki/jetty/FusekiErrorHandler.java   |    95 -
 .../apache/jena/fuseki/jetty/JettyFuseki.java   |   265 -
 .../jena/fuseki/jetty/JettyServerConfig.java    |    51 -
 .../apache/jena/fuseki/mgt/ActionAsyncTask.java |    70 -
 .../apache/jena/fuseki/mgt/ActionBackup.java    |    84 -
 .../jena/fuseki/mgt/ActionContainerItem.java    |    94 -
 .../org/apache/jena/fuseki/mgt/ActionCtl.java   |    97 -
 .../apache/jena/fuseki/mgt/ActionDatasets.java  |   400 -
 .../org/apache/jena/fuseki/mgt/ActionItem.java  |    45 -
 .../org/apache/jena/fuseki/mgt/ActionLogs.java  |    59 -
 .../org/apache/jena/fuseki/mgt/ActionPing.java  |    78 -
 .../jena/fuseki/mgt/ActionServerStatus.java     |   114 -
 .../org/apache/jena/fuseki/mgt/ActionSleep.java |    98 -
 .../org/apache/jena/fuseki/mgt/ActionStats.java |   214 -
 .../org/apache/jena/fuseki/mgt/ActionTasks.java |   125 -
 .../java/org/apache/jena/fuseki/mgt/Async.java  |    68 -
 .../java/org/apache/jena/fuseki/mgt/Backup.java |   102 -
 .../org/apache/jena/fuseki/mgt/DumpServlet.java |   312 -
 .../org/apache/jena/fuseki/mgt/JsonConst.java   |    52 -
 .../apache/jena/fuseki/mgt/JsonDescription.java |    73 -
 .../org/apache/jena/fuseki/mgt/MgtConst.java    |    30 -
 .../java/org/apache/jena/fuseki/mgt/MgtJMX.java |    61 -
 .../fuseki/migrate/DatasetGraphSwitchable.java  |    88 -
 .../jena/fuseki/migrate/GraphLoadUtils.java     |    76 -
 .../apache/jena/fuseki/migrate/Registry.java    |    42 -
 .../jena/fuseki/migrate/StreamRDFLimited.java   |    63 -
 .../org/apache/jena/fuseki/server/Counter.java  |    34 -
 .../jena/fuseki/server/CounterMXBean.java       |    25 -
 .../apache/jena/fuseki/server/CounterName.java  |    84 -
 .../apache/jena/fuseki/server/CounterSet.java   |    70 -
 .../org/apache/jena/fuseki/server/Counters.java |    25 -
 .../jena/fuseki/server/DataAccessPoint.java     |    75 -
 .../fuseki/server/DataAccessPointRegistry.java  |    37 -
 .../apache/jena/fuseki/server/DataService.java  |   199 -
 .../jena/fuseki/server/DatasetMXBean.java       |    35 -
 .../jena/fuseki/server/DatasetStatus.java       |    40 -
 .../org/apache/jena/fuseki/server/Endpoint.java |    68 -
 .../apache/jena/fuseki/server/FusekiServer.java |   416 -
 .../server/FusekiServletContextListener.java    |    94 -
 .../apache/jena/fuseki/server/FusekiVocab.java  |    77 -
 .../jena/fuseki/server/OperationName.java       |    37 -
 .../apache/jena/fuseki/server/RequestLog.java   |   148 -
 .../jena/fuseki/server/ServerInitialConfig.java |    40 -
 .../jena/fuseki/server/ServiceMXBean.java       |    32 -
 .../fuseki/server/ShiroEnvironmentLoader.java   |   164 -
 .../apache/jena/fuseki/server/SystemState.java  |    84 -
 .../apache/jena/fuseki/servlets/ActionBase.java |   265 -
 .../fuseki/servlets/ActionErrorException.java   |    32 -
 .../apache/jena/fuseki/servlets/ActionLib.java  |   180 -
 .../apache/jena/fuseki/servlets/ActionREST.java |   161 -
 .../jena/fuseki/servlets/ActionSPARQL.java      |   207 -
 .../fuseki/servlets/ConcurrencyPolicyMRSW.java  |   113 -
 .../jena/fuseki/servlets/FusekiFilter.java      |    87 -
 .../apache/jena/fuseki/servlets/HttpAction.java |   387 -
 .../servlets/HttpServletResponseTracker.java    |   140 -
 .../jena/fuseki/servlets/NullOutputStream.java  |    53 -
 .../apache/jena/fuseki/servlets/REST_Quads.java |    68 -
 .../jena/fuseki/servlets/REST_Quads_R.java      |    99 -
 .../jena/fuseki/servlets/REST_Quads_RW.java     |   136 -
 .../jena/fuseki/servlets/ResponseCallback.java  |    24 -
 .../jena/fuseki/servlets/ResponseModel.java     |   136 -
 .../jena/fuseki/servlets/ResponseOps.java       |    94 -
 .../jena/fuseki/servlets/ResponseResultSet.java |   322 -
 .../apache/jena/fuseki/servlets/SPARQL_GSP.java |   214 -
 .../jena/fuseki/servlets/SPARQL_GSP_R.java      |   123 -
 .../jena/fuseki/servlets/SPARQL_GSP_RW.java     |   208 -
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |   101 -
 .../jena/fuseki/servlets/SPARQL_Query.java      |   393 -
 .../fuseki/servlets/SPARQL_QueryDataset.java    |    60 -
 .../fuseki/servlets/SPARQL_QueryGeneral.java    |   142 -
 .../fuseki/servlets/SPARQL_UberServlet.java     |   358 -
 .../jena/fuseki/servlets/SPARQL_Update.java     |   286 -
 .../jena/fuseki/servlets/SPARQL_Upload.java     |   291 -
 .../jena/fuseki/servlets/ServletBase.java       |    98 -
 .../apache/jena/fuseki/servlets/ServletOps.java |   209 -
 .../org/apache/jena/fuseki/servlets/Upload.java |   164 -
 .../jena/fuseki/servlets/UploadDetails.java     |    86 -
 .../jena/fuseki/validation/DataValidator.java   |   131 -
 .../jena/fuseki/validation/IRIValidator.java    |   168 -
 .../jena/fuseki/validation/QueryValidator.java  |   154 -
 .../jena/fuseki/validation/UpdateValidator.java |    91 -
 .../fuseki/validation/ValidationAction.java     |    95 -
 .../jena/fuseki/validation/ValidationError.java |    24 -
 .../fuseki/validation/ValidatorBaseJson.java    |   201 -
 .../src/main/resources/META-INF/DEPENDENCIES    |    24 -
 .../src/main/resources/META-INF/LICENSE         |   253 -
 jena-fuseki2/src/main/resources/META-INF/NOTICE |    16 -
 .../src/main/resources/log4j.properties         |    50 -
 .../apache/jena/fuseki/fuseki-properties.xml    |     8 -
 .../org/apache/jena/fuseki/server/config.ttl    |    30 -
 .../org/apache/jena/fuseki/server/shiro.ini     |    36 -
 .../jena/fuseki/server/templates/config-mem     |    27 -
 .../jena/fuseki/server/templates/config-service |    23 -
 .../jena/fuseki/server/templates/config-tdb     |    36 -
 .../jena/fuseki/server/templates/config-tdb-dir |    35 -
 .../jena/fuseki/server/templates/config-tdb-mem |    36 -
 jena-fuseki2/src/main/webapp/WEB-INF/web.xml    |   264 -
 jena-fuseki2/src/main/webapp/admin-logs.html    |    72 -
 .../main/webapp/css/bootstrap-select.min.css    |     7 -
 .../src/main/webapp/css/bootstrap-theme.css.map |     1 -
 .../src/main/webapp/css/bootstrap-theme.min.css |     7 -
 .../src/main/webapp/css/bootstrap.css.map       |     1 -
 .../src/main/webapp/css/bootstrap.min.css       |     7 -
 jena-fuseki2/src/main/webapp/css/codemirror.css |   301 -
 jena-fuseki2/src/main/webapp/css/foldgutter.css |    20 -
 .../src/main/webapp/css/font-awesome.min.css    |     4 -
 jena-fuseki2/src/main/webapp/css/fui.css        |   191 -
 .../src/main/webapp/css/jquery.dataTables.css   |   220 -
 .../webapp/css/jquery.fileupload-noscript.css   |    22 -
 .../css/jquery.fileupload-ui-noscript.css       |    17 -
 .../main/webapp/css/jquery.fileupload-ui.css    |    57 -
 .../src/main/webapp/css/jquery.fileupload.css   |    36 -
 jena-fuseki2/src/main/webapp/css/qonsole.css    |   172 -
 jena-fuseki2/src/main/webapp/dataset.html       |   244 -
 jena-fuseki2/src/main/webapp/documentation.html |    80 -
 .../src/main/webapp/fonts/FontAwesome.otf       |   Bin 75188 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.eot   |   Bin 72449 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.svg   |   504 -
 .../main/webapp/fonts/fontawesome-webfont.ttf   |   Bin 141564 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff  |   Bin 83760 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.eot      |   Bin 20335 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.svg      |   229 -
 .../fonts/glyphicons-halflings-regular.ttf      |   Bin 41280 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.woff     |   Bin 23320 -> 0 bytes
 .../src/main/webapp/images/back_disabled.png    |   Bin 1361 -> 0 bytes
 .../src/main/webapp/images/back_enabled.png     |   Bin 1379 -> 0 bytes
 .../main/webapp/images/back_enabled_hover.png   |   Bin 1375 -> 0 bytes
 jena-fuseki2/src/main/webapp/images/favicon.ico |   Bin 1085 -> 0 bytes
 .../src/main/webapp/images/forward_disabled.png |   Bin 1363 -> 0 bytes
 .../src/main/webapp/images/forward_enabled.png  |   Bin 1380 -> 0 bytes
 .../webapp/images/forward_enabled_hover.png     |   Bin 1379 -> 0 bytes
 .../webapp/images/jena-logo-notext-small.png    |   Bin 2469 -> 0 bytes
 .../src/main/webapp/images/sort_asc.png         |   Bin 1118 -> 0 bytes
 .../main/webapp/images/sort_asc_disabled.png    |   Bin 1050 -> 0 bytes
 .../src/main/webapp/images/sort_both.png        |   Bin 1136 -> 0 bytes
 .../src/main/webapp/images/sort_desc.png        |   Bin 1127 -> 0 bytes
 .../main/webapp/images/sort_desc_disabled.png   |   Bin 1045 -> 0 bytes
 jena-fuseki2/src/main/webapp/images/wait30.gif  |   Bin 6337 -> 0 bytes
 jena-fuseki2/src/main/webapp/index.html         |   103 -
 .../src/main/webapp/js/app/controllers/.svnkeep |     0
 .../js/app/controllers/dataset-controller.js    |    69 -
 .../js/app/controllers/index-controller.js      |    50 -
 .../js/app/controllers/manage-controller.js     |    39 -
 .../js/app/controllers/query-controller.js      |    72 -
 .../js/app/controllers/upload-controller.js     |    42 -
 .../js/app/controllers/validation-controller.js |    38 -
 jena-fuseki2/src/main/webapp/js/app/fui.js      |    33 -
 .../src/main/webapp/js/app/layouts/.svnkeep     |     0
 .../src/main/webapp/js/app/main.dataset.js      |    31 -
 .../src/main/webapp/js/app/main.index.js        |    24 -
 .../src/main/webapp/js/app/main.manage.js       |    27 -
 .../src/main/webapp/js/app/main.validation.js   |    24 -
 .../main/webapp/js/app/models/dataset-stats.js  |   102 -
 .../src/main/webapp/js/app/models/dataset.js    |   251 -
 .../main/webapp/js/app/models/fuseki-server.js  |   155 -
 .../src/main/webapp/js/app/models/task.js       |   105 -
 .../webapp/js/app/models/validation-options.js  |    85 -
 .../src/main/webapp/js/app/qonsole-config.js    |    26 -
 .../src/main/webapp/js/app/routers/.svnkeep     |     0
 .../main/webapp/js/app/services/ping-service.js |    54 -
 .../js/app/services/validation-service.js       |    98 -
 .../webapp/js/app/templates/dataset-edit.tpl    |    58 -
 .../webapp/js/app/templates/dataset-info.tpl    |    40 -
 .../js/app/templates/dataset-management.tpl     |    53 -
 .../js/app/templates/dataset-selection-list.tpl |    22 -
 .../js/app/templates/dataset-selector.tpl       |    15 -
 .../js/app/templates/dataset-simple-create.tpl  |    79 -
 .../webapp/js/app/templates/dataset-stats.tpl   |    14 -
 .../webapp/js/app/templates/file-upload.tpl     |    46 -
 .../webapp/js/app/templates/uploadable-file.tpl |    23 -
 .../src/main/webapp/js/app/util/page-utils.js   |    33 -
 .../src/main/webapp/js/app/views/.svnkeep       |     0
 .../main/webapp/js/app/views/dataset-edit.js    |   205 -
 .../main/webapp/js/app/views/dataset-info.js    |    76 -
 .../webapp/js/app/views/dataset-management.js   |   160 -
 .../js/app/views/dataset-selection-list.js      |    58 -
 .../webapp/js/app/views/dataset-selector.js     |    84 -
 .../js/app/views/dataset-simple-create.js       |   100 -
 .../main/webapp/js/app/views/dataset-stats.js   |    41 -
 .../js/app/views/datasets-dropdown-list.js      |    43 -
 .../src/main/webapp/js/app/views/file-upload.js |   225 -
 .../webapp/js/app/views/tabbed-view-manager.js  |    63 -
 .../main/webapp/js/app/views/uploadable-file.js |    39 -
 .../webapp/js/app/views/validation-options.js   |    54 -
 .../src/main/webapp/js/common-config.js         |    72 -
 .../main/webapp/js/lib/addon/fold/brace-fold.js |   105 -
 .../webapp/js/lib/addon/fold/comment-fold.js    |    57 -
 .../main/webapp/js/lib/addon/fold/foldcode.js   |   145 -
 .../main/webapp/js/lib/addon/fold/foldgutter.js |   134 -
 .../main/webapp/js/lib/addon/fold/xml-fold.js   |   181 -
 .../src/main/webapp/js/lib/backbone-min.js      |     2 -
 jena-fuseki2/src/main/webapp/js/lib/backbone.js |  1581 --
 .../main/webapp/js/lib/backbone.marionette.js   |  2385 ---
 .../main/webapp/js/lib/bootstrap-select.min.js  |     8 -
 .../src/main/webapp/js/lib/bootstrap.min.js     |     6 -
 .../src/main/webapp/js/lib/html5shiv.js         |     8 -
 .../src/main/webapp/js/lib/jquery-1.10.2.js     |  9789 ---------
 .../src/main/webapp/js/lib/jquery-1.10.2.min.js |     6 -
 .../main/webapp/js/lib/jquery.dataTables.min.js |   155 -
 .../src/main/webapp/js/lib/jquery.fileupload.js |  1426 --
 .../webapp/js/lib/jquery.fileupload.local.js    |  1428 --
 .../src/main/webapp/js/lib/jquery.form.js       |  1278 --
 .../webapp/js/lib/jquery.iframe-transport.js    |   214 -
 .../src/main/webapp/js/lib/jquery.ui.widget.js  |   530 -
 .../main/webapp/js/lib/jquery.xdomainrequest.js |    90 -
 .../src/main/webapp/js/lib/lib/codemirror.js    |  7638 -------
 .../webapp/js/lib/mode/javascript/javascript.js |   683 -
 .../main/webapp/js/lib/mode/sparql/sparql.js    |   160 -
 .../main/webapp/js/lib/mode/turtle/turtle.js    |   160 -
 .../src/main/webapp/js/lib/mode/xml/xml.js      |   384 -
 .../src/main/webapp/js/lib/plugins/text.js      |   386 -
 jena-fuseki2/src/main/webapp/js/lib/qonsole.js  |   582 -
 jena-fuseki2/src/main/webapp/js/lib/refresh.sh  |    21 -
 .../main/webapp/js/lib/remote-sparql-service.js |   180 -
 jena-fuseki2/src/main/webapp/js/lib/require.js  |  2054 --
 .../src/main/webapp/js/lib/require.min.js       |    36 -
 .../src/main/webapp/js/lib/respond.min.js       |     6 -
 .../src/main/webapp/js/lib/sprintf-0.7-beta1.js |   183 -
 .../src/main/webapp/js/lib/underscore.js        |  1276 --
 jena-fuseki2/src/main/webapp/manage.html        |   107 -
 jena-fuseki2/src/main/webapp/services.html      |    75 -
 .../src/main/webapp/test/test-fuseki-config.ttl |    27 -
 jena-fuseki2/src/main/webapp/validate.html      |   146 -
 .../apache/jena/fuseki/AbstractFusekiTest.java  |    47 -
 .../java/org/apache/jena/fuseki/FileSender.java |    87 -
 .../java/org/apache/jena/fuseki/ServerTest.java |   156 -
 .../java/org/apache/jena/fuseki/TS_Fuseki.java  |    58 -
 .../java/org/apache/jena/fuseki/TestAdmin.java  |   538 -
 .../java/org/apache/jena/fuseki/TestAuth.java   |   405 -
 .../org/apache/jena/fuseki/TestDatasetOps.java  |   154 -
 .../org/apache/jena/fuseki/TestFileUpload.java  |   128 -
 .../java/org/apache/jena/fuseki/TestQuery.java  |   115 -
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |    95 -
 .../fuseki/http/TestDatasetAccessorHTTP.java    |   261 -
 .../http/TestDatasetGraphAccessorHTTP.java      |    43 -
 .../org/apache/jena/fuseki/http/TestHttpOp.java |   233 -
 jena-fuseki2/testing/config-ds-1.ttl            |    15 -
 jena-iri/NOTICE                                 |     2 +-
 .../src/main/java/org/apache/jena/iri/IRI.java  |    16 +-
 .../java/org/apache/jena/iri/IRIFactoryI.java   |   152 +-
 .../org/apache/jena/iri/ViolationCodes.java     |     4 +-
 .../apache/jena/iri/impl/AbsIRIFactoryImpl.java |    26 +-
 .../org/apache/jena/iri/impl/AbsIRIImpl.java    |    43 +-
 jena-iri/src/main/resources/META-INF/NOTICE     |     2 +-
 .../test/java/org/apache/jena/iri/TS_IRI.java   |     2 +
 .../java/org/apache/jena/iri/TestExample.java   |     9 +-
 .../org/apache/jena/iri/TestIRIFactory.java     |    73 +
 .../org/apache/jena/iri/TestMoreExamples.java   |     7 +-
 .../org/apache/jena/iri/test/Additional.java    |    61 -
 .../org/apache/jena/iri/test/MoreTests.java     |    98 -
 .../org/apache/jena/iri/test/TestCreator.java   |   254 -
 .../apache/jena/iri/test/TestErrorMessages.java |   144 -
 .../org/apache/jena/iri/test/TestExample.java   |   279 -
 .../org/apache/jena/iri/test/TestMEIri.java     |    39 -
 .../apache/jena/iri/test/TestMERelativize.java  |    50 -
 .../org/apache/jena/iri/test/TestMEResolve.java |    42 -
 .../org/apache/jena/iri/test/TestMEResult.java  |    46 -
 .../apache/jena/iri/test/TestMoreExamples.java  |   264 -
 .../org/apache/jena/iri/test/TestPackage.java   |    36 -
 .../test/resources/org/apache/jena/iri/test.xml | 18422 ++++++++---------
 .../resources/org/apache/jena/iri/test/test.xml |  9217 ---------
 .../resources/org/apache/jena/iri/test/uris.xml |   463 -
 jena-jdbc/NOTICE                                |     2 +-
 jena-jdbc/jena-jdbc-core/NOTICE                 |     2 +-
 jena-jdbc/jena-jdbc-core/pom.xml                |     2 +-
 .../statements/AbstractJenaStatementTests.java  |    74 +-
 jena-jdbc/jena-jdbc-driver-bundle/NOTICE        |     2 +-
 jena-jdbc/jena-jdbc-driver-bundle/pom.xml       |     2 +-
 jena-jdbc/jena-jdbc-driver-mem/NOTICE           |     2 +-
 jena-jdbc/jena-jdbc-driver-remote/NOTICE        |     2 +-
 jena-jdbc/jena-jdbc-driver-tdb/NOTICE           |     2 +-
 jena-jdbc/pom.xml                               |    12 +-
 jena-maven-tools/pom.xml                        |     2 +-
 jena-parent/NOTICE                              |     2 +-
 jena-parent/pom.xml                             |   146 +-
 jena-sdb/NOTICE                                 |     2 +-
 jena-sdb/dist/NOTICE                            |     2 +-
 jena-sdb/pom.xml                                |     8 +-
 .../hp/hpl/jena/sdb/graph/EventManagerSDB.java  |    19 +-
 .../com/hp/hpl/jena/sdb/graph/GraphSDB.java     |     7 +-
 .../hp/hpl/jena/sdb/layout2/NodeLayout2.java    |     6 +-
 .../com/hp/hpl/jena/sdb/layout2/SQLBridge2.java |    14 +-
 .../hpl/jena/sdb/layout2/TupleLoaderBase.java   |     3 +-
 .../com/hp/hpl/jena/sdb/layout2/ValueType.java  |     5 +
 .../jena/sdb/layout2/hash/StoreBaseHash.java    |     4 +-
 .../sdb/layout2/hash/TupleLoaderOneHash.java    |     4 +-
 .../jena/sdb/layout2/index/StoreBaseIndex.java  |     4 +-
 jena-sdb/src/main/resources/META-INF/NOTICE     |     2 +-
 jena-security/NOTICE                            |     2 +-
 jena-security/pom.xml                           |    84 +-
 .../jena/security/example/ExampleEvaluator.java |   147 +
 .../jena/security/example/SecurityExample.java  |    93 +
 .../security/example/ShiroExampleEvaluator.java |   235 +
 .../jena/security/example/ExampleEvaluator.java |   147 -
 .../jena/security/example/SecurityExample.java  |    93 -
 .../apache/jena/security/example/example.ttl    |    49 -
 .../apache/jena/security/example/example.ttl    |    49 +
 .../jena/security/example/fuseki/config.ttl     |    98 +
 .../jena/security/example/fuseki/shiro.ini      |    47 +
 .../jena/security/AssemblerConstants.java       |    62 +
 .../apache/jena/security/SecuredAssembler.java  |   157 +-
 .../apache/jena/security/SecurityEvaluator.java |   517 +-
 .../security/SecurityEvaluatorAssembler.java    |   186 +
 .../security/graph/SecuredCapabilities.java     |    18 +-
 .../jena/security/graph/SecuredGraph.java       |    38 +-
 .../graph/SecuredGraphEventManager.java         |   533 +-
 .../security/graph/impl/SecuredGraphImpl.java   |    64 +-
 .../security/impl/CachedSecurityEvaluator.java  |   120 +-
 .../apache/jena/security/impl/ItemHolder.java   |     2 +-
 .../jena/security/impl/SecuredItemImpl.java     |    22 +-
 .../jena/security/impl/SecuredItemInvoker.java  |     5 +-
 .../security/model/impl/SecuredModelImpl.java   |     5 +-
 .../security/model/impl/SecuredRDFListImpl.java |     2 +-
 .../security/model/impl/SecuredRSIterator.java  |     2 +-
 .../jena/security/query/SecuredQueryEngine.java |    14 +-
 .../security/query/rewriter/OpRewriter.java     |    39 +-
 .../query/rewriter/SecuredFunction.java         |     3 +-
 .../security/utils/PermStatementFilter.java     |     9 +-
 .../jena/security/utils/PermTripleFilter.java   |     9 +-
 .../jena/security/utils/RDFListSecFilter.java   |     9 +-
 .../jena/security/MockSecurityEvaluator.java    |    16 +-
 .../security/ModelBasedSecurityEvaluator.java   |    76 +
 .../jena/security/SecuredAssemblerTest.java     |    28 +-
 .../jena/security/StaticSecurityEvaluator.java  |    78 +
 .../graph/CachedSecurityEvaluatorTest.java      |    45 +
 .../graph/SecuredTDBGraphContractTests.java     |    52 +
 .../security/graph/BulkUpdateHandlerTest.java   |    57 +-
 .../graph/CrossIDGraphEventManagerTest.java     |    78 +
 .../security/graph/GraphEventManagerTest.java   |   127 +-
 .../security/graph/RecordingGraphListener.java  |   124 +
 .../graph/SecuredPrefixMappingTest.java         |    68 +-
 .../jena/security/model/SecuredLiteralTest.java |    47 +-
 .../security/model/SecuredModelDetailTest.java  |    20 +-
 .../apache/jena/security/query/DataSetTest.java |   250 +
 .../jena/security/query/QueryEngineTest.java    |   161 +-
 .../jena/security/SecuredAssemblerTest.ttl      |    31 +
 jena-spatial/NOTICE                             |     2 +-
 jena-spatial/pom.xml                            |     7 +-
 .../jena/query/spatial/SpatialIndexContext.java |     9 +-
 .../jena/query/spatial/SpatialIndexLucene.java  |    26 +-
 .../jena/query/spatial/SpatialValueUtil.java    |    32 +-
 .../assembler/SpatialIndexLuceneAssembler.java  |     1 +
 .../pfunction/DirectionWithPointPFBase.java     |     4 +-
 .../SpatialOperationWithBoxPFBase.java          |     8 +-
 .../SpatialOperationWithCircleBase.java         |     6 +-
 jena-spatial/src/main/resources/META-INF/NOTICE |     5 +
 .../AbstractTestDatasetWithSpatialIndex.java    |     9 +-
 .../jena/query/spatial/SpatialSearchUtil.java   |     1 +
 jena-tdb/NOTICE                                 |     2 +-
 jena-tdb/ReleaseNotes.txt                       |     4 +
 jena-tdb/pom.xml                                |     8 +-
 .../hp/hpl/jena/tdb/base/file/BlockAccess.java  |     2 +-
 .../com/hp/hpl/jena/tdb/base/file/Location.java |     5 +-
 .../jena/tdb/base/objectfile/ObjectFile.java    |     8 +-
 .../tdb/base/objectfile/ObjectFileStorage.java  |     5 +-
 .../com/hp/hpl/jena/tdb/index/SetupIndex.java   |   173 +
 .../java/com/hp/hpl/jena/tdb/lib/NodeLib.java   |    13 +-
 .../java/com/hp/hpl/jena/tdb/setup/Build.java   |    24 +-
 .../hpl/jena/tdb/setup/DatasetBuilderStd.java   |     4 +-
 .../hpl/jena/tdb/setup/StoreParamsBuilder.java  |     2 +-
 .../hp/hpl/jena/tdb/setup/StoreParamsCodec.java |     2 +-
 .../hp/hpl/jena/tdb/solver/StageMatchTuple.java |    11 +-
 .../hp/hpl/jena/tdb/store/DatasetGraphTDB.java  |    13 +-
 .../com/hp/hpl/jena/tdb/store/GraphTDB.java     |     6 +-
 .../java/com/hp/hpl/jena/tdb/store/Hash.java    |     2 +-
 .../java/com/hp/hpl/jena/tdb/store/NodeId.java  |    51 +-
 .../com/hp/hpl/jena/tdb/store/NodeType.java     |     1 +
 .../hpl/jena/tdb/store/nodetable/NodecSSE.java  |    17 +-
 .../java/com/hp/hpl/jena/tdb/sys/FileRef.java   |     6 +-
 .../java/com/hp/hpl/jena/tdb/sys/SetupTDB.java  |   162 +-
 jena-tdb/src/main/java/tdb/CmdRewriteIndex.java |     4 +-
 jena-tdb/src/main/resources/META-INF/NOTICE     |     2 +-
 .../jena/tdb/base/file/TestLocationLock.java    |    47 -
 .../hp/hpl/jena/tdb/extra/T_TransSystem.java    |     2 +-
 .../tdb/extra/T_TransSystemMultiDatasets.java   |     2 +-
 .../jena/tdb/index/AbstractTestTupleIndex.java  |   271 -
 .../index/bplustree/TestBPlusTreeRewriter.java  |     4 +-
 .../com/hp/hpl/jena/tdb/store/TS_Store.java     |     1 +
 .../store/TestLocationLockStoreConnection.java  |    98 +
 .../com/hp/hpl/jena/tdb/store/TestNodeId.java   |    16 +-
 .../store/nodetable/AbstractTestNodeTable.java  |     2 +-
 .../tupletable/AbstractTestTupleIndex.java      |   271 +
 .../store/tupletable/TestTupleIndexRecord.java  |     1 -
 jena-tdb/tdb-default.cfg                        |    20 +
 jena-text/NOTICE                                |     2 +-
 jena-text/ReleaseNotes.txt                      |     8 +
 jena-text/pom.xml                               |     4 +-
 jena-text/src/main/java/jena/textindexer.java   |     4 +-
 .../jena/query/text/DatasetGraphText.java       |   136 +-
 .../jena/query/text/TextDatasetFactory.java     |    29 +-
 .../query/text/TextDocProducerEntities.java     |    13 +-
 .../jena/query/text/TextDocProducerTriples.java |    22 +-
 .../org/apache/jena/query/text/TextIndex.java   |    20 +-
 .../apache/jena/query/text/TextIndexLucene.java |   123 +-
 .../apache/jena/query/text/TextIndexSolr.java   |    47 +-
 .../text/assembler/TextDatasetAssembler.java    |     2 +-
 .../assembler/TextIndexLuceneAssembler.java     |    14 +-
 jena-text/src/main/resources/LICENSE            |   202 -
 jena-text/src/main/resources/META-INF/LICENSE   |   202 +
 jena-text/src/main/resources/META-INF/NOTICE    |     2 +-
 .../AbstractTestDatasetWithGraphTextIndex.java  |    24 +-
 ...ractTestDatasetWithLuceneGraphTextIndex.java |    22 +-
 .../AbstractTestDatasetWithLuceneTextIndex.java |   103 -
 .../text/AbstractTestDatasetWithTextIndex.java  |     6 +-
 .../AbstractTestDatasetWithTextIndexBase.java   |    10 +-
 .../org/apache/jena/query/text/TS_Text.java     |     2 +-
 .../TestDatasetWithEmbeddedSolrTextIndex.java   |    15 +-
 .../text/TestDatasetWithKeywordAnalyzer.java    |    53 +-
 ...TestDatasetWithLowerCaseKeywordAnalyzer.java |    19 +-
 .../TestDatasetWithLuceneGraphTextIndex.java    |     5 +-
 .../text/TestDatasetWithLuceneTextIndex.java    |   100 +-
 .../text/TestDatasetWithSimpleAnalyzer.java     |    45 +-
 .../text/TestDatasetWithStandardAnalyzer.java   |    45 +-
 .../text/TestLuceneWithMultipleThreads.java     |   252 +
 ...BeforeWriteOnDatasetWithLuceneTextIndex.java |    49 -
 .../assembler/AbstractTestTextAssembler.java    |    82 +-
 .../assembler/TestTextDatasetAssembler.java     |     4 +-
 .../assembler/TestTextIndexLuceneAssembler.java |    83 +-
 pom.xml                                         |    23 +-
 1508 files changed, 114948 insertions(+), 92217 deletions(-)
----------------------------------------------------------------------



[23/26] jena git commit: Do assignment inlining sooner if enabled (JENA-780)

Posted by rv...@apache.org.
Do assignment inlining sooner if enabled (JENA-780)

Doing assignment inlining sooner may change filter conditions which may
give us more options on how we optimize filters in some cases


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d28edb48
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d28edb48
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d28edb48

Branch: refs/heads/master
Commit: d28edb48ed03b0f04a1e63b19265d5153d6657d7
Parents: 263d842
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Jul 7 10:16:00 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Jul 7 10:16:00 2015 +0100

----------------------------------------------------------------------
 .../apache/jena/sparql/algebra/optimize/Optimize.java    | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/d28edb48/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
index 034e233..8c2347a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
@@ -171,6 +171,12 @@ public class Optimize implements Rewrite
 
         if ( context.isTrueOrUndef(ARQ.optFilterExpandOneOf) )
             op = apply("Break up IN and NOT IN", new TransformExpandOneOf(), op) ;
+        
+        // Eliminate/Inline assignments where possible
+        // Do this before we do some of the filter transformation work as inlining assignments 
+        // may give us more flexibility in optimizing the resulting filters
+        if ( context.isTrue(ARQ.optInlineAssignments) )
+            op = TransformEliminateAssignments.eliminate(op, context.isTrue(ARQ.optInlineAssignmentsAggressive));
 
         // Apply some general purpose filter transformations
                 
@@ -203,7 +209,7 @@ public class Optimize implements Rewrite
         // Find joins/leftJoin that can be done by index joins (generally preferred as fixed memory overhead).
         if ( context.isTrueOrUndef(ARQ.optIndexJoinStrategy) )
             op = apply("Index Join strategy", new TransformJoinStrategy(), op) ;
-        
+                
         // Place filters close to where their dependency variables are defined.
         // This prunes the output of that step as early as possible.
         // If done before TransformJoinStrategy, you can get two applications
@@ -231,9 +237,6 @@ public class Optimize implements Rewrite
         if ( context.isTrue(ARQ.optFilterInequality) )
             op = apply("Filter Inequality", new TransformFilterInequality(), op);
         
-        // Eliminate/Inline assignments where possible
-        if ( context.isTrue(ARQ.optInlineAssignments) )
-            op = TransformEliminateAssignments.eliminate(op, context.isTrue(ARQ.optInlineAssignmentsAggressive));
         
         // Promote table empty as late as possible since this will only be produced by other 
         // optimizations and never directly from algebra generation


[16/26] jena git commit: More bug fixes to inlining assignments in extend (JENA-780)

Posted by rv...@apache.org.
More bug fixes to inlining assignments in extend (JENA-780)

This commit adds additional test cases and some bug fixes that cover the
case where there are single use assignments that can be inlined where
the value is only used in the extend we are currently processing which
requires some extra work to make sure we eliminate unused assignments
after we inline them.  It also ensures that subsequent assignments which
can also have assignments inlined into them refer to the correct
expression taking into account previous inlinings that have happened.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d6f516de
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d6f516de
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d6f516de

Branch: refs/heads/master
Commit: d6f516decedd40e0339012279a4e392239865cf0
Parents: 985b995
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 15:46:20 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 15:46:20 2015 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 104 +++++++++++--------
 .../TestTransformEliminateAssignments.java      |  32 ++++++
 2 files changed, 93 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/d6f516de/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 4d59fc3..59e77c2 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -78,7 +78,6 @@ import com.hp.hpl.jena.sparql.expr.NodeValue;
  * <ul>
  * <li>Filter Expressions</li>
  * <li>Bind and Select Expressions</li>
- * <li>Group By Expressions</li>
  * <li>Order By Expressions if aggressive in-lining is enabled</li>
  * </ul>
  * <p>
@@ -211,11 +210,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         // Track the assignments for future reference
         this.tracker.putAssignments(opExtend.getVarExprList());
 
-        // TODO Could also eliminate assignments where the value is only used in
-        // a subsequent assignment
-
-        // See if there are any assignments we can eliminate entirely i.e. those
-        // where the assigned value is never used
+        // Eliminate and inline assignments
         VarExprList unusedAssignments = processUnused(opExtend.getVarExprList());
         VarExprList newAssignments = new VarExprList();
         for (Var assignVar : opExtend.getVarExprList().getVars()) {
@@ -229,6 +224,7 @@ public class TransformEliminateAssignments extends TransformCopy {
             Collection<Var> vars = new ArrayList<>();
             ExprVars.varsMentioned(vars, currExpr);
 
+            // See if we can inline anything
             for (Var var : vars) {
                 // Usage count will be 2 if we can eliminate the assignment
                 // First usage is when it is introduced by the assignment and
@@ -242,6 +238,10 @@ public class TransformEliminateAssignments extends TransformCopy {
                     currExpr = ExprTransformer.transform(new ExprTransformSubstitute(var, e), currExpr);
                     this.tracker.getAssignments().remove(var);
 
+                    // Need to update any assignments we may be tracking that
+                    // refer to the variable we just inlined
+                    this.tracker.updateAssignments(var, e);
+
                     // If the assignment to be eliminated was introduced by the
                     // extend we are processing need to remove it from the
                     // VarExprList we are currently building
@@ -271,7 +271,7 @@ public class TransformEliminateAssignments extends TransformCopy {
             if (this.tracker.getUsageCount(var) == 1)
                 singleUse.add(var, assignments.getExpr(var));
         }
-        
+
         // If nothing is single use
         if (singleUse.size() == 0)
             return null;
@@ -367,49 +367,57 @@ public class TransformEliminateAssignments extends TransformCopy {
 
     @Override
     public Op transform(OpGroup opGroup, Op subOp) {
-        if (!this.isApplicable())
-            return super.transform(opGroup, subOp);
-
-        // See what vars are used in the filter
-        Collection<Var> vars = new ArrayList<>();
-        VarExprList exprs = new VarExprList(opGroup.getGroupVars());
-        List<ExprAggregator> aggs = new ArrayList<ExprAggregator>(opGroup.getAggregators());
-        for (Expr expr : exprs.getExprs().values()) {
-            ExprVars.varsMentioned(vars, expr);
-        }
-
-        // Are any of these vars single usage?
-        boolean modified = false;
-        for (Var var : vars) {
-            // Usage count will be 2 if we can eliminate the assignment
-            // First usage is when it is introduced by the assignment and the
-            // second is when it is used now in this group by
-            Expr e = getAssignExpr(var);
-            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
-                // Can go back and eliminate that assignment
-                subOp = eliminateAssignment(subOp, var);
-                // Replace the variable usage with the expression in both the
-                // expressions and the aggregators
-                ExprTransform transform = new ExprTransformSubstitute(var, e);
-                exprs = processVarExprList(exprs, transform);
-                aggs = processAggregators(aggs, transform);
-                this.tracker.getAssignments().remove(var);
-                modified = true;
-            }
-        }
-
-        // Create a new group by if we've substituted any expressions
-        if (modified) {
-            return new OpGroup(subOp, exprs, aggs);
-        }
-
         return super.transform(opGroup, subOp);
+
+        // TODO Unclear if this will work properly or not because group can
+        // introduce new assignments as well as evaluate expressions
+
+        //@formatter:off
+//        if (!this.isApplicable())
+//            return super.transform(opGroup, subOp);
+//
+//        // See what vars are used in the filter
+//        Collection<Var> vars = new ArrayList<>();
+//        VarExprList exprs = new VarExprList(opGroup.getGroupVars());
+//        List<ExprAggregator> aggs = new ArrayList<ExprAggregator>(opGroup.getAggregators());
+//        for (Expr expr : exprs.getExprs().values()) {
+//            ExprVars.varsMentioned(vars, expr);
+//        }
+//
+//        // Are any of these vars single usage?
+//        boolean modified = false;
+//        for (Var var : vars) {
+//            // Usage count will be 2 if we can eliminate the assignment
+//            // First usage is when it is introduced by the assignment and the
+//            // second is when it is used now in this group by
+//            Expr e = getAssignExpr(var);
+//            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+//                // Can go back and eliminate that assignment
+//                subOp = eliminateAssignment(subOp, var);
+//                // Replace the variable usage with the expression in both the
+//                // expressions and the aggregators
+//                ExprTransform transform = new ExprTransformSubstitute(var, e);
+//                exprs = processVarExprList(exprs, transform);
+//                aggs = processAggregators(aggs, transform);
+//                this.tracker.getAssignments().remove(var);
+//                modified = true;
+//            }
+//        }
+//
+//        // Create a new group by if we've substituted any expressions
+//        if (modified) {
+//            return new OpGroup(subOp, exprs, aggs);
+//        }
+//
+//        return super.transform(opGroup, subOp);
+        //@formatter:on
     }
 
     private Op eliminateAssignment(Op subOp, Var var) {
         return Transformer.transform(new TransformRemoveAssignment(var, getAssignExpr(var)), subOp);
     }
 
+    @SuppressWarnings("unused")
     private VarExprList processVarExprList(VarExprList exprs, ExprTransform transform) {
         VarExprList newExprs = new VarExprList();
         for (Var v : exprs.getVars()) {
@@ -420,6 +428,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         return newExprs;
     }
 
+    @SuppressWarnings("unused")
     private List<ExprAggregator> processAggregators(List<ExprAggregator> aggs, ExprTransform transform) {
         List<ExprAggregator> newAggs = new ArrayList<ExprAggregator>();
         for (ExprAggregator agg : aggs) {
@@ -459,6 +468,15 @@ public class TransformEliminateAssignments extends TransformCopy {
             }
         }
 
+        public void updateAssignments(Var v, Expr e) {
+            ExprTransformSubstitute transform = new ExprTransformSubstitute(v, e);
+            for (Var assignVar : this.assignments.keySet()) {
+                Expr assignExpr = this.assignments.get(assignVar);
+                assignExpr = ExprTransformer.transform(transform, assignExpr);
+                this.assignments.put(assignVar, assignExpr);
+            }
+        }
+
         public void incrementDepth() {
             this.depth++;
         }

http://git-wip-us.apache.org/repos/asf/jena/blob/d6f516de/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index cd0904b..7d6cf40 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -145,6 +145,38 @@ public class TestTransformEliminateAssignments {
              "    (table unit)))");
         //@formatter:on
     }
+    
+    @Test
+    public void extend_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (extend ((?x true) (?y ?x) (?z ?y))",
+                                "    (table unit)))"),
+             "(project (?z)",
+             "  (extend (?z true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+    
+    @Test
+    public void extend_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (extend ((?a true) (?b ?a) (?c false) (?d ?c) (?z (|| ?b ?d)))",
+                                "    (table unit)))"),
+             "(project (?z)",
+             "  (extend (?z (|| true false))",
+             "    (table unit)))");
+        //@formatter:on
+    }
 
     @Test
     public void orderby_01() {


[03/26] jena git commit: Fix bug with scope of transform (JENA-780)

Posted by rv...@apache.org.
Fix bug with scope of transform (JENA-780)

This commit fixes the transform so that it is only applied to extend
assignments that occur inside a projection.  If it is not within a
projection we have to assume that the variable may be used and thus must
leave it alone.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/79f8765a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/79f8765a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/79f8765a

Branch: refs/heads/jena2
Commit: 79f8765ac9caeda095db241621da0566ab7bccca
Parents: 308810f
Author: Rob Vesse <rv...@apache.org>
Authored: Thu Sep 25 16:01:18 2014 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Thu Sep 25 16:01:18 2014 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java |  91 ++++++++++++---
 .../algebra/optimize/VariableUsagePusher.java   |  18 +++
 .../algebra/optimize/VariableUsageTracker.java  |  18 +++
 .../algebra/optimize/VariableUsageVisitor.java  |  18 +++
 .../TestTransformEliminateAssignments.java      | 115 ++++++++++---------
 5 files changed, 190 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 49f8f1c..d24c500 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.ArrayList;
@@ -13,7 +31,6 @@ import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
 import com.hp.hpl.jena.sparql.algebra.Transform;
 import com.hp.hpl.jena.sparql.algebra.TransformCopy;
 import com.hp.hpl.jena.sparql.algebra.Transformer;
-import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
 import com.hp.hpl.jena.sparql.algebra.op.OpExt;
 import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
 import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
@@ -39,15 +56,18 @@ import com.hp.hpl.jena.sparql.expr.ExprVars;
  * assignment</li>
  * <li>Assignments where the assigned value is never used elsewhere</li>
  * </ol>
- * 
- * @author rvesse
+ * <p>
+ * Both of these changes can only happen inside of projections as otherwise we
+ * have to assume that the user may need the resulting variable and thus we
+ * leave the assignment alone.
+ * </p>
  * 
  */
 public class TransformEliminateAssignments extends TransformCopy {
 
     public static Op eliminate(Op op) {
         AssignmentTracker tracker = new AssignmentTracker();
-        VariableUsagePusher pusher = new VariableUsagePusher(tracker);
+        AssignmentPusher pusher = new AssignmentPusher(tracker);
         AssignmentPopper popper = new AssignmentPopper(tracker);
         Transform transform = new TransformEliminateAssignments(tracker, pusher, popper);
 
@@ -62,6 +82,19 @@ public class TransformEliminateAssignments extends TransformCopy {
         this.before = before;
     }
 
+    protected boolean isApplicable() {
+        // Can only be applied if we are inside a projection as otherwise the
+        // assigned variables need to remain visible
+        if (!this.tracker.insideProjection())
+            return false;
+        // If there are no eligible assignments then don't bother doing any work
+        if (this.tracker.assignments.size() == 0)
+            return false;
+
+        // Otherwise may be applicable
+        return true;
+    }
+
     @Override
     public Op transform(OpExt opExt) {
         return opExt.apply(this, this.before, this.after);
@@ -69,6 +102,9 @@ public class TransformEliminateAssignments extends TransformCopy {
 
     @Override
     public Op transform(OpFilter opFilter, Op subOp) {
+        if (!this.isApplicable())
+            return super.transform(opFilter, subOp);
+
         // See what vars are used in the filter
         Collection<Var> vars = new ArrayList<>();
         for (Expr expr : opFilter.getExprs().getList()) {
@@ -103,16 +139,10 @@ public class TransformEliminateAssignments extends TransformCopy {
     }
 
     @Override
-    public Op transform(OpAssign opAssign, Op subOp) {
-        this.tracker.putAssignments(opAssign.getVarExprList());
-        // Note that for assign we don't eliminate instances where its value is
-        // never used because assign has different semantics to extend that
-        // means in such a case it acts more like a filter
-        return super.transform(opAssign, subOp);
-    }
-
-    @Override
     public Op transform(OpExtend opExtend, Op subOp) {
+        if (!this.tracker.insideProjection())
+            return super.transform(opExtend, subOp);
+
         this.tracker.putAssignments(opExtend.getVarExprList());
 
         // See if there are any assignments we can eliminate entirely i.e. those
@@ -165,6 +195,7 @@ public class TransformEliminateAssignments extends TransformCopy {
     private static class AssignmentTracker extends VariableUsageTracker {
 
         private Map<Var, Expr> assignments = new HashMap<>();
+        private int depth = 0;
 
         public Map<Var, Expr> getAssignments() {
             return this.assignments;
@@ -191,6 +222,36 @@ public class TransformEliminateAssignments extends TransformCopy {
             }
         }
 
+        public void incrementDepth() {
+            this.depth++;
+        }
+
+        public void decrementDepth() {
+            this.depth--;
+            // Clear all assignments if not inside a project
+            if (this.depth == 0)
+                this.assignments.clear();
+        }
+
+        public boolean insideProjection() {
+            return this.depth > 0;
+        }
+    }
+
+    private static class AssignmentPusher extends VariableUsagePusher {
+
+        private AssignmentTracker tracker;
+
+        public AssignmentPusher(AssignmentTracker tracker) {
+            super(tracker);
+            this.tracker = tracker;
+        }
+
+        @Override
+        public void visit(OpProject opProject) {
+            super.visit(opProject);
+            this.tracker.incrementDepth();
+        }
     }
 
     private static class AssignmentPopper extends OpVisitorBase {
@@ -204,8 +265,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         @Override
         public void visit(OpProject opProject) {
             // Any assignments that are not projected should be discarded at
-            // this
-            // point
+            // this point
             Iterator<Var> vars = tracker.getAssignments().keySet().iterator();
             while (vars.hasNext()) {
                 Var var = vars.next();
@@ -213,6 +273,7 @@ public class TransformEliminateAssignments extends TransformCopy {
                     vars.remove();
             }
             tracker.pop();
+            this.tracker.decrementDepth();
         }
 
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
index 51a04fb..437a104 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
index f63e41e..770738c 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
index 9fda1c4..664c7b0 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index 1b73d25..ff8b65f 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import org.apache.jena.atlas.lib.StrUtils;
@@ -33,6 +51,7 @@ public class TestTransformEliminateAssignments {
         }
     }
 
+    @SuppressWarnings("unused")
     private void testNoChange(String input) {
         test(input, (String[]) null);
     }
@@ -45,26 +64,54 @@ public class TestTransformEliminateAssignments {
     public void eliminate_single_use_extend_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
         //@formatter:off
-        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                "  (extend (?x true)",
-                                "    (table unit)))"),
-             "(filter (exprlist true)",
-             "  (table unit))");
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (filter (exprlist ?x)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+             "(project (?y)",
+             "  (filter (exprlist true)",
+             "    (table unit)))");
         //@formatter:on
     }
 
     @Test
     public void eliminate_single_use_extend_02() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // The other assignment is removed because it's value is never used
+        // Assignment for ?y can be removed because it is never used
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
         //@formatter:off
-        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                "  (extend ((?x true) (?y false))",
-                                "    (table unit)))"),
-             "(filter (exprlist true)",
-             "    (table unit))");
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (filter (exprlist ?x)",
+                                "    (extend ((?x true) (?y false))",
+                                "      (table unit))))"),
+             "(project (?z)",
+             "  (filter (exprlist true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void single_use_extend_unchanged_01() {
+        // Cannot eliminate as there is no projection so the assigned variable
+        // is visible even though in the algebra given it is used only once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (extend (?x true)",
+                     "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void single_use_extend_unchanged_02() {
+        // Cannot eliminate as there is no projection so the assigned variable
+        // is visible even though in the algebra given it is used only once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (extend ((?x true) (?y false))",
+                     "    (table unit)))");
         //@formatter:on
     }
 
@@ -126,46 +173,4 @@ public class TestTransformEliminateAssignments {
             "      (table unit))))");
         //@formatter:on
     }
-
-    @Test
-    public void eliminate_single_use_assign_01() {
-        //@formatter:off
-        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                "  (assign (?x true)",
-                                "    (table unit)))"),
-             "(filter (exprlist true)",
-             "  (table unit))");
-        //@formatter:on
-    }
-
-    @Test
-    public void multi_use_assign_unchanged_01() {
-        //@formatter:off
-        testNoChange("(filter (> (* ?x ?x) 16)",
-                     "  (assign (?x 3)",
-                     "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void multi_use_assign_unchanged_02() {
-        // Left alone because assigned to more than once
-        //@formatter:off
-        testNoChange("(filter (exprlist ?x)",
-                     "  (assign (?x true)",
-                     "    (assign (?x true)",
-                     "      (table unit))))");
-        //@formatter:on
-    }
-
-    @Test
-    public void multi_use_assign_unchanged_03() {
-        // Left alone because assigned to more than once
-        //@formatter:off
-        testNoChange("(filter (exprlist ?x)",
-                     "  (assign (?x true)",
-                     "    (assign (?x false)",
-                     "      (table unit))))");
-        //@formatter:on
-    }
 }


[24/26] jena git commit: Do assignment inling sooner if enabled (JENA-780)

Posted by rv...@apache.org.
Do assignment inling sooner if enabled (JENA-780)

Performing inlining sooner may give us more flexibility in optimizing
filters


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8e052e32
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8e052e32
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8e052e32

Branch: refs/heads/jena2
Commit: 8e052e3209ed3935e2413abadd1957fb75b30993
Parents: 39e4fd5
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Jul 7 10:18:22 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Jul 7 10:18:22 2015 +0100

----------------------------------------------------------------------
 .../com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/8e052e32/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
index 180bfd4..d36dae8 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
@@ -176,6 +176,12 @@ public class Optimize implements Rewrite
 
         if ( context.isTrueOrUndef(ARQ.optFilterExpandOneOf) )
             op = apply("Break up IN and NOT IN", new TransformExpandOneOf(), op) ;
+        
+        // Eliminate/Inline assignments where possible
+        // Do this before we do the filter transformations as inlining assignments may
+        // give us more flexibility in optimizing filters
+        if ( context.isTrue(ARQ.optInlineAssignments) )
+            op = TransformEliminateAssignments.eliminate(op, context.isTrue(ARQ.optInlineAssignmentsAggressive));
 
         // Apply some general purpose filter transformations
                 
@@ -236,10 +242,6 @@ public class Optimize implements Rewrite
         if ( context.isTrue(ARQ.optFilterInequality) )
             op = apply("Filter Inequality", new TransformFilterInequality(), op);
         
-        // Eliminate/Inline assignments where possible
-        if ( context.isTrue(ARQ.optInlineAssignments) )
-            op = TransformEliminateAssignments.eliminate(op, context.isTrue(ARQ.optInlineAssignmentsAggressive));
-        
         // Promote table empty as late as possible since this will only be produced by other 
         // optimizations and never directly from algebra generation
         if ( context.isTrueOrUndef(ARQ.optPromoteTableEmpty) )


[21/26] jena git commit: Bring up to date with Jena 3 changes (JENA-780)

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
deleted file mode 100644
index 7d6cf40..0000000
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ /dev/null
@@ -1,431 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hp.hpl.jena.sparql.algebra.optimize;
-
-import org.apache.jena.atlas.lib.StrUtils;
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.hp.hpl.jena.sparql.algebra.Op;
-import com.hp.hpl.jena.sparql.sse.SSE;
-
-/**
- * Tests for the {@link TransformEliminateAssignments}
- * 
- */
-public class TestTransformEliminateAssignments {
-
-    private void test(String input, String... output) {
-        test(input, false, output);
-    }
-
-    private void test(String input, boolean aggressive, String... output) {
-        Op original = SSE.parseOp(input);
-        test(original, aggressive, output);
-    }
-
-    private void test(Op original, boolean aggressive, String... output) {
-        // Transform
-        Op actual = TransformEliminateAssignments.eliminate(original, aggressive);
-
-        // Check results
-        if (output == null) {
-            // No transformation.
-            Assert.assertEquals(original, actual);
-        } else {
-            // Transformation expected
-            Op expected = SSE.parseOp(StrUtils.strjoinNL(output));
-            Assert.assertEquals(expected, actual);
-        }
-    }
-
-    private void testNoChange(String... input) {
-        testNoChange(false, input);
-    }
-
-    private void testNoChangeAggressive(String... input) {
-        testNoChange(true, input);
-    }
-
-    private void testNoChange(boolean aggressive, String... input) {
-        test(StrUtils.strjoinNL(input), aggressive, (String[]) null);
-    }
-
-    @Test
-    public void unused_01() {
-        // Assignments never used can be eliminated
-        // However we must be inside a projection as otherwise the assigned
-        // variable would be visible and we couldn't eliminate the assignment
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?y)",
-                                "  (extend (?x true)",
-                                "    (table unit)))"),
-             "(project (?y)",
-             "  (table unit))");
-        //@formatter:on
-    }
-
-    @Test
-    public void unused_02() {
-        // Assignments never used can be eliminated
-        // However we must be inside a projection as otherwise the assigned
-        // variable would be visible and we couldn't eliminate the assignment
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?y)",
-                                "  (extend ((?x true) (?y false))",
-                                "    (table unit)))"),
-             "(project (?y)",
-             "  (extend (?y false)",
-             "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void filter_01() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // However we must be inside a projection as otherwise the assigned
-        // variable would be visible and we couldn't eliminate the assignment
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?y)",
-                                "  (filter (exprlist ?x)",
-                                "    (extend (?x true)",
-                                "      (table unit))))"),
-             "(project (?y)",
-             "  (filter (exprlist true)",
-             "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void filter_02() {
-        // Assignment for ?y can be removed because it is never used
-        // Assignment for ?x can be in-lined
-        // However we must be inside a projection as otherwise the assigned
-        // variable would be visible and we couldn't eliminate the assignment
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?z)",
-                                "  (filter (exprlist ?x)",
-                                "    (extend ((?x true) (?y false))",
-                                "      (table unit))))"),
-             "(project (?z)",
-             "  (filter (exprlist true)",
-             "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void extend_01() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // However we must be inside a projection as otherwise the assigned
-        // variable would be visible and we couldn't eliminate the assignment
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?y)",
-                                "  (extend ((?x true) (?y ?x))",
-                                "    (table unit)))"),
-             "(project (?y)",
-             "  (extend (?y true)",
-             "    (table unit)))");
-        //@formatter:on
-    }
-    
-    @Test
-    public void extend_02() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // However we must be inside a projection as otherwise the assigned
-        // variable would be visible and we couldn't eliminate the assignment
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?z)",
-                                "  (extend ((?x true) (?y ?x) (?z ?y))",
-                                "    (table unit)))"),
-             "(project (?z)",
-             "  (extend (?z true)",
-             "    (table unit)))");
-        //@formatter:on
-    }
-    
-    @Test
-    public void extend_03() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // However we must be inside a projection as otherwise the assigned
-        // variable would be visible and we couldn't eliminate the assignment
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?z)",
-                                "  (extend ((?a true) (?b ?a) (?c false) (?d ?c) (?z (|| ?b ?d)))",
-                                "    (table unit)))"),
-             "(project (?z)",
-             "  (extend (?z (|| true false))",
-             "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void orderby_01() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // However we must be inside a projection as otherwise the assigned
-        // variable would be visible and we couldn't eliminate the assignment
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?y)",
-                                "  (order (?x)",
-                                "    (extend (?x true)",
-                                "      (table unit))))"),
-             "(project (?y)",
-             "  (order (true)",
-             "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void orderby_02() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // BUT we won't do this by default for complex expressions where they
-        // are used in a place where they could be evaluated multiple times
-        //@formatter:off
-        testNoChange(StrUtils.strjoinNL("(project (?y)",
-                                        "  (order (?x)",
-                                        "    (extend (?x (contains 'foo' 'bar'))",
-                                        "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void orderby_03() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // BUT we won't do this by default for complex expressions where they
-        // are used in a place where they could be evaluated multiple times
-        // EXCEPT if we are doing aggressive in-lining
-        //@formatter:off
-        test(StrUtils.strjoinNL("(project (?y)",
-                                "  (order (?x)",
-                                "    (extend (?x (contains 'foo' 'bar'))",
-                                "      (table unit))))"),
-             true,
-             "(project (?y)",
-             "  (order ((contains 'foo' 'bar'))",
-             "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void filter_unstable_01() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // EXCEPT if the expression is unstable in which case we leave it alone
-        //@formatter:off
-        testNoChange(StrUtils.strjoinNL("(project (?y)",
-                                        "  (filter (exprlist ?x)",
-                                        "    (extend (?x (rand))",
-                                        "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void filter_unstable_02() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // EXCEPT if the expression is unstable in which case we leave it alone
-        //@formatter:off
-        testNoChange(StrUtils.strjoinNL("(project (?y)",
-                                        "  (filter (exprlist ?x)",
-                                        "    (extend (?x (uuid))",
-                                        "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void filter_unstable_03() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // EXCEPT if the expression is unstable in which case we leave it alone
-        //@formatter:off
-        testNoChange(StrUtils.strjoinNL("(project (?y)",
-                                        "  (filter (exprlist ?x)",
-                                        "    (extend (?x (struuid))",
-                                        "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void filter_unstable_04() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // EXCEPT if the expression is unstable in which case we leave it alone
-        //@formatter:off
-        testNoChange(StrUtils.strjoinNL("(project (?y)",
-                                        "  (filter (exprlist ?x)",
-                                        "    (extend (?x (bnode))",
-                                        "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void orderby_unstable_01() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // EXCEPT if the expression is unstable in which case we leave it alone
-        //@formatter:off
-        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
-                                                  "  (order (?x)",
-                                                  "    (extend (?x (rand))",
-                                                  "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void orderby_unstable_02() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // EXCEPT if the expression is unstable in which case we leave it alone
-        //@formatter:off
-        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
-                                                  "  (order (?x)",
-                                                  "    (extend (?x (uuid))",
-                                            "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void orderby_unstable_03() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // EXCEPT if the expression is unstable in which case we leave it alone
-        //@formatter:off
-        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
-                                                  "  (order (?x)",
-                                                  "    (extend (?x (struuid))",
-                                                  "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void orderby_unstable_04() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // EXCEPT if the expression is unstable in which case we leave it alone
-        //@formatter:off
-        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
-                                                  "  (order (?x)",
-                                                  "    (extend (?x (bnode))",
-                                                  "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void ineligible_01() {
-        // Cannot eliminate as there is no projection so the assigned variable
-        // is visible even though in the algebra given it is used only once
-        //@formatter:off
-        testNoChange("(filter (exprlist ?x)",
-                     "  (extend (?x true)",
-                     "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void ineligible_02() {
-        // Cannot eliminate as there is no projection so the assigned variable
-        // is visible even though in the algebra given it is used only once
-        //@formatter:off
-        testNoChange("(filter (exprlist ?x)",
-                     "  (extend ((?x true) (?y false))",
-                     "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void ineligible_03() {
-        // As the assigned variable is used multiple times we leave the
-        // assignment alone
-        //@formatter:off
-        testNoChange("(project (?y)",
-                     "  (filter (> (* ?x ?x) 16)",
-                     "    (extend (?x 3)",
-                     "      (table unit))))");
-        //@formatter:on
-    }
-
-    @Test
-    public void ineligible_04() {
-        // Because the value of the assignment is used in multiple places we
-        // leave the assignment alone
-        //@formatter:off
-        testNoChange("(project (?y)",
-                     "  (filter (exprlist ?x)",
-                     "    (join",
-                     "      (extend (?x true)",
-                     "        (table unit))",
-                     "      (bgp (triple ?x ?y ?z)))))");
-        //@formatter:on
-    }
-
-    @Test
-    public void scope_01() {
-        // If the assignment is out of scope by the time it is used in the outer
-        // scope then we can't substitute it out there
-        // In this test the outer ?x is technically different from the inner ?x
-        // anyway because of the projection
-        //@formatter:off
-        testNoChange(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                        "  (project (?x ?y)",
-                                        "    (extend (?x true)",
-                                        "      (table unit))))"));
-        //@formatter:on
-    }
-
-    @Test
-    public void scope_02() {
-        // If the assignment is out of scope by the time it is used in the outer
-        // scope then we can't substitute it out there
-        // However if the scoping means the value is never used we can instead
-        // eliminate it entirely
-        //@formatter:off
-        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                "  (project (?y)",
-                                "    (extend (?x true)",
-                                "      (table unit))))"),
-            "(filter (exprlist ?x)",
-            "  (project (?y)",
-            "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void scope_03() {
-        // If the assignment is out of scope by the time it is used in the outer
-        // scope then we can't substitute it out there
-        // However in this case we can substitute it in the inner scope
-        //@formatter:off
-        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                "  (project (?y)",
-                                "    (filter (exprlist ?x)",
-                                "      (extend (?x true)",
-                                "        (table unit)))))"),
-            "(filter (exprlist ?x)",
-            "  (project (?y)",
-            "    (filter (exprlist true)",
-            "      (table unit))))");
-        //@formatter:on
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
new file mode 100644
index 0000000..1304fe4
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -0,0 +1,432 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.algebra.optimize;
+
+import org.apache.jena.atlas.lib.StrUtils;
+import org.apache.jena.sparql.algebra.optimize.TransformEliminateAssignments;
+import org.junit.Assert;
+import org.junit.Test;
+
+import org.apache.jena.sparql.algebra.Op;
+import org.apache.jena.sparql.sse.SSE;
+
+/**
+ * Tests for the {@link TransformEliminateAssignments}
+ * 
+ */
+public class TestTransformEliminateAssignments {
+
+    private void test(String input, String... output) {
+        test(input, false, output);
+    }
+
+    private void test(String input, boolean aggressive, String... output) {
+        Op original = SSE.parseOp(input);
+        test(original, aggressive, output);
+    }
+
+    private void test(Op original, boolean aggressive, String... output) {
+        // Transform
+        Op actual = TransformEliminateAssignments.eliminate(original, aggressive);
+
+        // Check results
+        if (output == null) {
+            // No transformation.
+            Assert.assertEquals(original, actual);
+        } else {
+            // Transformation expected
+            Op expected = SSE.parseOp(StrUtils.strjoinNL(output));
+            Assert.assertEquals(expected, actual);
+        }
+    }
+
+    private void testNoChange(String... input) {
+        testNoChange(false, input);
+    }
+
+    private void testNoChangeAggressive(String... input) {
+        testNoChange(true, input);
+    }
+
+    private void testNoChange(boolean aggressive, String... input) {
+        test(StrUtils.strjoinNL(input), aggressive, (String[]) null);
+    }
+
+    @Test
+    public void unused_01() {
+        // Assignments never used can be eliminated
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend (?x true)",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void unused_02() {
+        // Assignments never used can be eliminated
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend ((?x true) (?y false))",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (extend (?y false)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void filter_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (filter (exprlist ?x)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+             "(project (?y)",
+             "  (filter (exprlist true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void filter_02() {
+        // Assignment for ?y can be removed because it is never used
+        // Assignment for ?x can be in-lined
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (filter (exprlist ?x)",
+                                "    (extend ((?x true) (?y false))",
+                                "      (table unit))))"),
+             "(project (?z)",
+             "  (filter (exprlist true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void extend_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend ((?x true) (?y ?x))",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (extend (?y true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+    
+    @Test
+    public void extend_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (extend ((?x true) (?y ?x) (?z ?y))",
+                                "    (table unit)))"),
+             "(project (?z)",
+             "  (extend (?z true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+    
+    @Test
+    public void extend_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (extend ((?a true) (?b ?a) (?c false) (?d ?c) (?z (|| ?b ?d)))",
+                                "    (table unit)))"),
+             "(project (?z)",
+             "  (extend (?z (|| true false))",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (order (?x)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+             "(project (?y)",
+             "  (order (true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // BUT we won't do this by default for complex expressions where they
+        // are used in a place where they could be evaluated multiple times
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (order (?x)",
+                                        "    (extend (?x (contains 'foo' 'bar'))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // BUT we won't do this by default for complex expressions where they
+        // are used in a place where they could be evaluated multiple times
+        // EXCEPT if we are doing aggressive in-lining
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (order (?x)",
+                                "    (extend (?x (contains 'foo' 'bar'))",
+                                "      (table unit))))"),
+             true,
+             "(project (?y)",
+             "  (order ((contains 'foo' 'bar'))",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void filter_unstable_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (rand))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void filter_unstable_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (uuid))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void filter_unstable_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (struuid))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void filter_unstable_04() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (bnode))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (rand))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (uuid))",
+                                            "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (struuid))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_04() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (bnode))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void ineligible_01() {
+        // Cannot eliminate as there is no projection so the assigned variable
+        // is visible even though in the algebra given it is used only once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (extend (?x true)",
+                     "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void ineligible_02() {
+        // Cannot eliminate as there is no projection so the assigned variable
+        // is visible even though in the algebra given it is used only once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (extend ((?x true) (?y false))",
+                     "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void ineligible_03() {
+        // As the assigned variable is used multiple times we leave the
+        // assignment alone
+        //@formatter:off
+        testNoChange("(project (?y)",
+                     "  (filter (> (* ?x ?x) 16)",
+                     "    (extend (?x 3)",
+                     "      (table unit))))");
+        //@formatter:on
+    }
+
+    @Test
+    public void ineligible_04() {
+        // Because the value of the assignment is used in multiple places we
+        // leave the assignment alone
+        //@formatter:off
+        testNoChange("(project (?y)",
+                     "  (filter (exprlist ?x)",
+                     "    (join",
+                     "      (extend (?x true)",
+                     "        (table unit))",
+                     "      (bgp (triple ?x ?y ?z)))))");
+        //@formatter:on
+    }
+
+    @Test
+    public void scope_01() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // In this test the outer ?x is technically different from the inner ?x
+        // anyway because of the projection
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                        "  (project (?x ?y)",
+                                        "    (extend (?x true)",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void scope_02() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // However if the scoping means the value is never used we can instead
+        // eliminate it entirely
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (project (?y)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+            "(filter (exprlist ?x)",
+            "  (project (?y)",
+            "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void scope_03() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // However in this case we can substitute it in the inner scope
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (project (?y)",
+                                "    (filter (exprlist ?x)",
+                                "      (extend (?x true)",
+                                "        (table unit)))))"),
+            "(filter (exprlist ?x)",
+            "  (project (?y)",
+            "    (filter (exprlist true)",
+            "      (table unit))))");
+        //@formatter:on
+    }
+}


[14/26] jena git commit: Improve assignment inlining (JENA-780)

Posted by rv...@apache.org.
Improve assignment inlining (JENA-780)

Fixes a bug in how assignments were eliminated/inlined from usages in
extend and generally improves how we cope with extend such that we can
inline expressions where they are defined in the same extend as they are
used.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/985b995b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/985b995b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/985b995b

Branch: refs/heads/master
Commit: 985b995be1f21c7ee0627a00326866b27babfd03
Parents: bdcf8a6
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 15:29:22 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 15:29:22 2015 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java |  73 ++++++---
 .../TestTransformEliminateAssignments.java      | 160 ++++++++++++++++---
 2 files changed, 193 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/985b995b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 91dc435..4d59fc3 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -120,17 +120,19 @@ public class TransformEliminateAssignments extends TransformCopy {
     }
 
     protected boolean canInline(Expr e) {
+        if (e == null)
+            return false;
         return ExprLib.isStable(e);
     }
 
     protected boolean shouldInline(Expr e) {
+        if (e == null)
+            return false;
+
         // Inline everything when being aggressive
         if (this.aggressive)
             return true;
 
-        if (e == null)
-            return false;
-
         // If not being aggressive only inline if the expression is a constant
         return e.isConstant() || e instanceof NodeValue;
     }
@@ -214,13 +216,47 @@ public class TransformEliminateAssignments extends TransformCopy {
 
         // See if there are any assignments we can eliminate entirely i.e. those
         // where the assigned value is never used
-        VarExprList assignments = processUnused(opExtend.getVarExprList());
-        if (assignments == null)
-            return super.transform(opExtend, subOp);
+        VarExprList unusedAssignments = processUnused(opExtend.getVarExprList());
+        VarExprList newAssignments = new VarExprList();
+        for (Var assignVar : opExtend.getVarExprList().getVars()) {
+            // If unused eliminate
+            if (unusedAssignments != null && unusedAssignments.contains(assignVar))
+                continue;
+
+            Expr currExpr = opExtend.getVarExprList().getExpr(assignVar);
+
+            // See what vars are used in the current expression
+            Collection<Var> vars = new ArrayList<>();
+            ExprVars.varsMentioned(vars, currExpr);
+
+            for (Var var : vars) {
+                // Usage count will be 2 if we can eliminate the assignment
+                // First usage is when it is introduced by the assignment and
+                // the second is when it is used now used in another assignment
+                Expr e = getAssignExpr(var);
+                if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+                    // Can go back and eliminate that assignment
+                    subOp = eliminateAssignment(subOp, var);
+                    // Replace the variable usage with the expression within
+                    // expression
+                    currExpr = ExprTransformer.transform(new ExprTransformSubstitute(var, e), currExpr);
+                    this.tracker.getAssignments().remove(var);
+
+                    // If the assignment to be eliminated was introduced by the
+                    // extend we are processing need to remove it from the
+                    // VarExprList we are currently building
+                    if (newAssignments.contains(var) && newAssignments.getExpr(var).equals(e)) {
+                        newAssignments.getVars().remove(var);
+                        newAssignments.getExprs().remove(var);
+                    }
+                }
+            }
+            newAssignments.add(assignVar, currExpr);
+        }
 
-        // Can eliminate some assignments entirely
-        if (assignments.size() > 0) {
-            return OpExtend.extend(subOp, assignments);
+        // May be able to eliminate the extend entirely in some cases
+        if (newAssignments.size() > 0) {
+            return OpExtend.extend(subOp, newAssignments);
         } else {
             return subOp;
         }
@@ -230,20 +266,17 @@ public class TransformEliminateAssignments extends TransformCopy {
         if (CollectionUtils.disjoint(assignments.getVars(), this.tracker.getAssignments().keySet()))
             return null;
 
-        VarExprList modified = new VarExprList();
+        VarExprList singleUse = new VarExprList();
         for (Var var : assignments.getVars()) {
-            // If an assignment is used more than once then it must be preserved
-            // for now
-            if (this.tracker.getUsageCount(var) > 1)
-                modified.add(var, assignments.getExpr(var));
+            if (this.tracker.getUsageCount(var) == 1)
+                singleUse.add(var, assignments.getExpr(var));
         }
-
-        // If all assignments are used more than once then there are no changes
-        // and we return null
-        if (modified.size() == assignments.size())
+        
+        // If nothing is single use
+        if (singleUse.size() == 0)
             return null;
 
-        return modified;
+        return singleUse;
     }
 
     @Override
@@ -262,7 +295,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         for (Var var : vars) {
             // Usage count will be 2 if we can eliminate the assignment
             // First usage is when it is introduced by the assignment and the
-            // second is when it is used now in this filter
+            // second is when it is used now in this order expression
             Expr e = getAssignExpr(var);
             if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
                 // Can go back and eliminate that assignment

http://git-wip-us.apache.org/repos/asf/jena/blob/985b995b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index 163ce8c..cd0904b 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -56,11 +56,48 @@ public class TestTransformEliminateAssignments {
     }
 
     private void testNoChange(String... input) {
-        test(StrUtils.strjoinNL(input), (String[]) null);
+        testNoChange(false, input);
+    }
+
+    private void testNoChangeAggressive(String... input) {
+        testNoChange(true, input);
+    }
+
+    private void testNoChange(boolean aggressive, String... input) {
+        test(StrUtils.strjoinNL(input), aggressive, (String[]) null);
+    }
+
+    @Test
+    public void unused_01() {
+        // Assignments never used can be eliminated
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend (?x true)",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void unused_02() {
+        // Assignments never used can be eliminated
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend ((?x true) (?y false))",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (extend (?y false)",
+             "    (table unit)))");
+        //@formatter:on
     }
 
     @Test
-    public void single_use_extend_01() {
+    public void filter_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // However we must be inside a projection as otherwise the assigned
@@ -77,8 +114,9 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_02() {
+    public void filter_02() {
         // Assignment for ?y can be removed because it is never used
+        // Assignment for ?x can be in-lined
         // However we must be inside a projection as otherwise the assigned
         // variable would be visible and we couldn't eliminate the assignment
         //@formatter:off
@@ -93,7 +131,23 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_03() {
+    public void extend_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend ((?x true) (?y ?x))",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (extend (?y true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // However we must be inside a projection as otherwise the assigned
@@ -110,7 +164,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_complex_01() {
+    public void orderby_02() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // BUT we won't do this by default for complex expressions where they
@@ -124,7 +178,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_complex_02() {
+    public void orderby_03() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // BUT we won't do this by default for complex expressions where they
@@ -141,9 +195,9 @@ public class TestTransformEliminateAssignments {
              "    (table unit)))");
         //@formatter:on
     }
-    
+
     @Test
-    public void single_use_extend_unstable_01() {
+    public void filter_unstable_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // EXCEPT if the expression is unstable in which case we leave it alone
@@ -154,9 +208,9 @@ public class TestTransformEliminateAssignments {
                                         "      (table unit))))"));
         //@formatter:on
     }
-    
+
     @Test
-    public void single_use_extend_unstable_02() {
+    public void filter_unstable_02() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // EXCEPT if the expression is unstable in which case we leave it alone
@@ -167,9 +221,9 @@ public class TestTransformEliminateAssignments {
                                         "      (table unit))))"));
         //@formatter:on
     }
-    
+
     @Test
-    public void single_use_extend_unstable_03() {
+    public void filter_unstable_03() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // EXCEPT if the expression is unstable in which case we leave it alone
@@ -180,9 +234,9 @@ public class TestTransformEliminateAssignments {
                                         "      (table unit))))"));
         //@formatter:on
     }
-    
+
     @Test
-    public void single_use_extend_unstable_04() {
+    public void filter_unstable_04() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // EXCEPT if the expression is unstable in which case we leave it alone
@@ -195,7 +249,59 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_outside_projection_01() {
+    public void orderby_unstable_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (rand))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (uuid))",
+                                            "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (struuid))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_04() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (bnode))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void ineligible_01() {
         // Cannot eliminate as there is no projection so the assigned variable
         // is visible even though in the algebra given it is used only once
         //@formatter:off
@@ -206,7 +312,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_outside_projection_02() {
+    public void ineligible_02() {
         // Cannot eliminate as there is no projection so the assigned variable
         // is visible even though in the algebra given it is used only once
         //@formatter:off
@@ -217,7 +323,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void multi_use_extend_01() {
+    public void ineligible_03() {
         // As the assigned variable is used multiple times we leave the
         // assignment alone
         //@formatter:off
@@ -229,7 +335,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void multi_use_extend_02() {
+    public void ineligible_04() {
         // Because the value of the assignment is used in multiple places we
         // leave the assignment alone
         //@formatter:off
@@ -243,7 +349,21 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void scoped_use_extend_01() {
+    public void scope_01() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // In this test the outer ?x is technically different from the inner ?x
+        // anyway because of the projection
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                        "  (project (?x ?y)",
+                                        "    (extend (?x true)",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void scope_02() {
         // If the assignment is out of scope by the time it is used in the outer
         // scope then we can't substitute it out there
         // However if the scoping means the value is never used we can instead
@@ -260,7 +380,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void scoped_use_extend_02() {
+    public void scope_03() {
         // If the assignment is out of scope by the time it is used in the outer
         // scope then we can't substitute it out there
         // However in this case we can substitute it in the inner scope


[10/26] jena git commit: Merge branch 'master' into eliminate-assignments

Posted by rv...@apache.org.
Merge branch 'master' into eliminate-assignments


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/57cf5dd9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/57cf5dd9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/57cf5dd9

Branch: refs/heads/jena2
Commit: 57cf5dd9adf21262167e12d944af32bd2b70a3a0
Parents: e1a8357 00ff878
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Feb 17 12:19:57 2015 +0000
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Feb 17 12:19:57 2015 +0000

----------------------------------------------------------------------
 .gitignore                                      |     3 +-
 NOTICE                                          |     2 +-
 apache-jena-libs/pom.xml                        |     2 +-
 apache-jena-osgi/jena-osgi-test/pom.xml         |   195 +
 .../org/apache/jena/osgi/test/JenaOSGITest.java |   209 +
 apache-jena-osgi/jena-osgi/pom.xml              |   230 +
 apache-jena-osgi/pom.xml                        |    51 +
 apache-jena/NOTICE                              |     2 +-
 apache-jena/pom.xml                             |    14 +-
 jena-arq/Grammar/arq.jj                         |    20 +-
 jena-arq/Grammar/master.jj                      |    25 +-
 jena-arq/Grammar/sparql_11.jj                   |    18 +-
 jena-arq/NOTICE                                 |     2 +-
 jena-arq/ReleaseNotes.txt                       |     4 +
 jena-arq/pom.xml                                |    20 +-
 jena-arq/rdf10                                  |    12 +
 jena-arq/rdf11                                  |    12 +
 jena-arq/src-examples/arq/examples/ExProg1.java |     9 +-
 jena-arq/src-examples/arq/examples/ExProg2.java |     9 +-
 .../arq/examples/ExQuerySelect1.java            |    22 +-
 .../arq/examples/ExQuerySelect2.java            |    11 +-
 .../arq/examples/ExampleDBpedia1.java           |    12 +-
 .../arq/examples/ExampleDBpedia2.java           |     6 +-
 .../arq/examples/ExampleDBpedia3.java           |    21 +-
 .../examples/aggregates/CustomAggregate.java    |   113 +
 .../examples/propertyfunction/labelSearch.java  |    10 +-
 .../examples/propertyfunction/localname.java    |     3 +-
 .../arq/examples/riot/ExRIOT_2.java             |    17 +-
 .../arq/examples/riot/ExRIOT_5.java             |     9 +
 jena-arq/src/main/java/arq/cmdline/CmdLARQ.java |    29 -
 .../java/arq/cmdline/ModDatasetGeneral.java     |     3 -
 .../main/java/arq/cmdline/ModLangOutput.java    |   134 +-
 jena-arq/src/main/java/arq/iri.java             |     4 +-
 .../main/java/com/hp/hpl/jena/query/ARQ.java    |     5 +-
 .../com/hp/hpl/jena/query/DatasetAccessor.java  |     1 -
 .../com/hp/hpl/jena/query/QueryExecution.java   |     4 +-
 .../java/com/hp/hpl/jena/sparql/SystemARQ.java  |     6 +-
 .../hp/hpl/jena/sparql/algebra/Transformer.java |     4 +-
 .../hpl/jena/sparql/algebra/op/OpQuadBlock.java |     2 +-
 .../jena/sparql/algebra/op/OpQuadPattern.java   |     2 +-
 .../optimize/TransformFilterEquality.java       |    78 +-
 .../optimize/TransformFilterPlacement.java      |   224 +-
 .../com/hp/hpl/jena/sparql/core/DataBlock.java  |    25 -
 .../com/hp/hpl/jena/sparql/core/DataFormat.java |    65 -
 .../jena/sparql/core/DatasetChangesCapture.java |     2 +-
 .../hp/hpl/jena/sparql/core/DatasetGraph.java   |     4 +-
 .../jena/sparql/core/DatasetGraphCaching.java   |    93 +-
 .../sparql/core/DatasetGraphCollection.java     |     7 +-
 .../jena/sparql/core/DatasetGraphMonitor.java   |     2 +-
 .../jena/sparql/core/DatasetGraphSimpleMem.java |     5 +-
 .../sparql/core/DatasetGraphViewGraphs.java     |     4 +-
 .../com/hp/hpl/jena/sparql/core/GraphView.java  |     3 +-
 .../com/hp/hpl/jena/sparql/core/QuadAction.java |     2 +-
 .../engine/binding/BindingProjectBase.java      |     2 +-
 .../hp/hpl/jena/sparql/expr/ExprAggregator.java |     7 +-
 .../com/hp/hpl/jena/sparql/expr/ExprList.java   |    20 +-
 .../hpl/jena/sparql/expr/ExprTransformer.java   |     9 +-
 .../com/hp/hpl/jena/sparql/expr/NodeValue.java  |    47 +-
 .../expr/aggregate/AccumulatorFactory.java      |    31 +
 .../hpl/jena/sparql/expr/aggregate/AggAvg.java  |    24 +-
 .../sparql/expr/aggregate/AggAvgDistinct.java   |    25 +-
 .../jena/sparql/expr/aggregate/AggCount.java    |    12 +-
 .../sparql/expr/aggregate/AggCountDistinct.java |     8 +-
 .../jena/sparql/expr/aggregate/AggCountVar.java |    21 +-
 .../expr/aggregate/AggCountVarDistinct.java     |    21 +-
 .../jena/sparql/expr/aggregate/AggCustom.java   |   102 +-
 .../sparql/expr/aggregate/AggGroupConcat.java   |    78 +-
 .../expr/aggregate/AggGroupConcatDistinct.java  |    45 +-
 .../hpl/jena/sparql/expr/aggregate/AggMax.java  |    18 +-
 .../jena/sparql/expr/aggregate/AggMaxBase.java  |     9 +-
 .../sparql/expr/aggregate/AggMaxDistinct.java   |    18 +-
 .../hpl/jena/sparql/expr/aggregate/AggMin.java  |    18 +-
 .../jena/sparql/expr/aggregate/AggMinBase.java  |     9 +-
 .../sparql/expr/aggregate/AggMinDistinct.java   |    19 +-
 .../hpl/jena/sparql/expr/aggregate/AggNull.java |    14 +-
 .../jena/sparql/expr/aggregate/AggSample.java   |    26 +-
 .../expr/aggregate/AggSampleDistinct.java       |    21 +-
 .../hpl/jena/sparql/expr/aggregate/AggSum.java  |    23 +-
 .../sparql/expr/aggregate/AggSumDistinct.java   |    22 +-
 .../expr/aggregate/AggregateRegistry.java       |    70 +
 .../jena/sparql/expr/aggregate/Aggregator.java  |    14 +-
 .../sparql/expr/aggregate/AggregatorBase.java   |    70 +-
 .../expr/aggregate/AggregatorFactory.java       |     5 +-
 .../sparql/expr/nodevalue/NodeFunctions.java    |    91 +-
 .../sparql/expr/nodevalue/NodeValueDecimal.java |     2 +-
 .../sparql/expr/nodevalue/NodeValueDouble.java  |     2 +-
 .../expr/nodevalue/NodeValueDuration.java       |     2 +-
 .../sparql/expr/nodevalue/NodeValueFloat.java   |     2 +-
 .../sparql/expr/nodevalue/NodeValueInteger.java |     2 +-
 .../jena/sparql/expr/nodevalue/XSDFuncOp.java   |    21 +-
 .../hp/hpl/jena/sparql/graph/GraphDataBag.java  |     5 +-
 .../hp/hpl/jena/sparql/graph/GraphMemPlain.java |     9 +-
 .../hp/hpl/jena/sparql/graph/GraphSPARQL.java   |     2 +-
 .../jena/sparql/graph/GraphSPARQLService.java   |     5 +-
 .../hpl/jena/sparql/graph/GraphUnionRead.java   |     3 +-
 .../hp/hpl/jena/sparql/graph/GraphWrapper.java  |    12 +-
 .../com/hp/hpl/jena/sparql/graph/NodeConst.java |    20 +-
 .../com/hp/hpl/jena/sparql/lang/ParserBase.java |    16 +-
 .../hp/hpl/jena/sparql/lang/arq/ARQParser.java  |   596 +-
 .../sparql/lang/sparql_11/SPARQLParser11.java   |    16 +-
 .../com/hp/hpl/jena/sparql/lib/DatasetLib.java  |     6 +-
 .../hpl/jena/sparql/modify/GraphStoreNull.java  |    22 +-
 .../hp/hpl/jena/sparql/modify/UpdateEngine.java |     2 +-
 .../hp/hpl/jena/sparql/modify/UpdateSink.java   |     2 +-
 .../sparql/resultset/JSONInputIterator.java     |     2 +-
 .../sparql/resultset/JSONOutputResultSet.java   |    17 +-
 .../hp/hpl/jena/sparql/resultset/RDFOutput.java |     6 +-
 .../jena/sparql/resultset/ResultSetCompare.java |     4 +-
 .../jena/sparql/serializer/FmtExprSPARQL.java   |     2 +-
 .../java/com/hp/hpl/jena/sparql/sse/SSE.java    |    11 +-
 .../java/com/hp/hpl/jena/sparql/sse/Tags.java   |     3 +-
 .../jena/sparql/sse/builders/BuilderExpr.java   |    25 +-
 .../jena/sparql/sse/lang/ParseHandlerPlain.java |     4 +-
 .../hp/hpl/jena/sparql/util/DateTimeStruct.java |     2 +-
 .../com/hp/hpl/jena/sparql/util/ExprUtils.java  |     8 +
 .../com/hp/hpl/jena/sparql/util/FmtUtils.java   |    67 +-
 .../hpl/jena/sparql/util/NodeFactoryExtra.java  |    18 +-
 .../com/hp/hpl/jena/sparql/util/NodeUtils.java  |   281 +-
 .../hp/hpl/jena/sparql/util/StringUtils.java    |     5 +-
 .../java/com/hp/hpl/jena/sparql/util/Timer.java |    48 +-
 .../java/com/hp/hpl/jena/sparql/util/Utils.java |   220 +-
 .../hpl/jena/sparql/util/graph/GraphSink.java   |     3 +-
 .../org/apache/jena/atlas/iterator/Iter.java    |    27 +-
 .../jena/atlas/iterator/IteratorConcat.java     |    19 +-
 .../jena/atlas/iterator/IteratorCons.java       |     9 +-
 .../jena/atlas/iterator/IteratorWithBuffer.java |   117 +-
 .../atlas/iterator/IteratorWithHistory.java     |    61 +-
 .../jena/atlas/iterator/PushbackIterator.java   |    37 +-
 .../org/apache/jena/atlas/lib/AlarmClock.java   |     2 +-
 .../org/apache/jena/atlas/lib/MultiMap.java     |    26 +-
 .../org/apache/jena/atlas/lib/Registry.java     |    39 +
 .../java/org/apache/jena/atlas/lib/Tuple.java   |     2 +-
 .../apache/jena/atlas/lib/cache/CacheLRU.java   |     2 +-
 .../org/apache/jena/atlas/logging/FmtLog.java   |    61 +-
 .../org/apache/jena/atlas/logging/LogCtl.java   |     1 -
 .../main/java/org/apache/jena/riot/Lang.java    |     6 +-
 .../java/org/apache/jena/riot/RDFDataMgr.java   |     4 +-
 .../java/org/apache/jena/riot/RDFFormat.java    |     2 +-
 .../java/org/apache/jena/riot/RDFLanguages.java |    13 +-
 .../org/apache/jena/riot/RDFWriterRegistry.java |    14 +-
 .../java/org/apache/jena/riot/ResultSetMgr.java |    30 +-
 .../java/org/apache/jena/riot/RiotReader.java   |     8 +-
 .../java/org/apache/jena/riot/RiotWriter.java   |    30 +-
 .../jena/riot/checker/CheckerLiterals.java      |   164 +-
 .../jena/riot/lang/BlankNodeAllocator.java      |     4 +-
 .../jena/riot/lang/BlankNodeAllocatorLabel.java |     2 +-
 .../lang/BlankNodeAllocatorLabelEncoded.java    |     2 +-
 .../org/apache/jena/riot/lang/JsonLDReader.java |     2 +-
 .../org/apache/jena/riot/lang/LangNQuads.java   |     3 +-
 .../org/apache/jena/riot/lang/LangNTriples.java |     5 +
 .../org/apache/jena/riot/lang/LangRDFJSON.java  |     4 +-
 .../org/apache/jena/riot/lang/LangRDFXML.java   |     8 +-
 .../org/apache/jena/riot/lang/LangTriG.java     |     5 +-
 .../org/apache/jena/riot/lang/LangTurtle.java   |     5 +-
 .../apache/jena/riot/out/NodeFormatterBase.java |    24 +-
 .../org/apache/jena/riot/out/RDFJSONWriter.java |    54 -
 .../apache/jena/riot/out/SinkEntityOutput.java  |   147 -
 .../process/normalize/CanonicalizeLiteral.java  |    27 +-
 .../riot/process/normalize/NormalizeValue.java  |    16 +-
 .../riot/process/normalize/NormalizeValue2.java |     4 +-
 .../jena/riot/resultset/ResultSetReader.java    |     8 +-
 .../riot/resultset/ResultSetReaderRegistry.java |     4 +-
 .../jena/riot/resultset/ResultSetWriter.java    |     7 +-
 .../riot/resultset/ResultSetWriterRegistry.java |    40 +-
 .../org/apache/jena/riot/system/IRILib.java     |    54 +-
 .../apache/jena/riot/system/IRIResolver.java    |    29 +-
 .../jena/riot/system/ParserProfileBase.java     |     4 +-
 .../jena/riot/system/ParserProfileChecker.java  |     4 +-
 .../jena/riot/system/PrefixMapFactory.java      |     2 +-
 .../org/apache/jena/riot/system/RiotLib.java    |     2 +-
 .../jena/riot/system/StreamRDFWriter.java       |     6 +-
 .../jena/riot/system/stream/LocatorFile.java    |     2 +-
 .../jena/riot/system/stream/StreamManager.java  |     4 +-
 .../org/apache/jena/riot/thrift/BinRDF.java     |    44 +-
 .../jena/riot/thrift/StreamRDF2Thrift.java      |     2 +-
 .../java/org/apache/jena/riot/thrift/TRDF.java  |     8 +-
 .../apache/jena/riot/thrift/ThriftConvert.java  |     8 +-
 .../java/org/apache/jena/riot/tokens/Token.java |   231 +-
 .../apache/jena/riot/tokens/TokenizerText.java  |    20 +-
 .../java/org/apache/jena/riot/web/HttpOp.java   |     2 +-
 .../java/org/apache/jena/riot/web/LangTag.java  |     3 +-
 .../apache/jena/riot/writer/RDFJSONWriter.java  |   114 +-
 .../jena/riot/writer/SinkEntityOutput.java      |   148 -
 .../apache/jena/riot/writer/TurtleShell.java    |    14 +-
 .../jena/riot/writer/WriterStreamRDFPlain.java  |     4 +-
 .../org/apache/jena/riot/writer/WriterTriX.java |     2 +-
 .../src/main/java/riotcmd/CmdLangParse.java     |    54 +-
 jena-arq/src/main/resources/META-INF/NOTICE     |     2 +-
 .../optimize/TestTransformConstantFolding.java  |    18 +
 .../optimize/TestTransformFilterPlacement.java  |   101 +-
 .../algebra/optimize/TestTransformFilters.java  |    30 +-
 .../engine/iterator/TestQueryIterSort.java      |     2 +-
 .../com/hp/hpl/jena/sparql/expr/TS_Expr.java    |     1 +
 .../jena/sparql/expr/TestCustomAggregates.java  |   163 +
 .../hp/hpl/jena/sparql/expr/TestFunctions.java  |     4 +-
 .../hpl/jena/sparql/expr/TestNodeFunctions.java |    67 +-
 .../hp/hpl/jena/sparql/expr/TestNodeValue.java  |    26 +-
 .../hp/hpl/jena/sparql/expr/TestOrdering.java   |    52 +-
 .../hp/hpl/jena/sparql/expr/TestXSDFuncOp.java  |    64 +-
 .../hpl/jena/sparql/syntax/TestSSE_Basic.java   |     8 +-
 .../hpl/jena/sparql/syntax/TestSSE_Forms.java   |     2 +-
 .../com/hp/hpl/jena/sparql/util/TS_Util.java    |     4 +-
 .../hp/hpl/jena/sparql/util/TestFmtUtils.java   |    13 +-
 .../com/hp/hpl/jena/sparql/util/TestList.java   |    10 +-
 .../com/hp/hpl/jena/sparql/util/TestUtils.java  |    84 +
 .../jena/atlas/data/TestDistinctDataBag.java    |     2 +-
 .../jena/atlas/data/TestDistinctDataNet.java    |     2 +-
 .../jena/atlas/data/TestSortedDataBag.java      |     2 +-
 .../apache/jena/riot/ErrorHandlerTestLib.java   |    15 +-
 .../test/java/org/apache/jena/riot/TC_Riot.java |     4 +-
 .../org/apache/jena/riot/out/TestNodeFmt.java   |    16 +-
 .../apache/jena/riot/system/TestChecker.java    |     1 +
 .../jena/riot/tokens/TestTokenForNode.java      |     6 +-
 .../apache/jena/riot/tokens/TestTokenizer.java  |    91 +-
 .../apache/jena/riot/writer/TestRDFJSON.java    |    17 +-
 .../ARQ/BasicPatterns/result-B-01-RDF_10.n3     |    19 +
 .../ARQ/BasicPatterns/result-B-01-RDF_11.n3     |    24 +
 .../ARQ/Distinct/distinct-all_RDF_10.srx        |   111 +
 .../ARQ/Distinct/distinct-all_RDF_11.srx        |    93 +
 .../ARQ/Distinct/distinct-str_RDF_10.srx        |    56 +
 .../ARQ/Distinct/distinct-str_RDF_11.srx        |    38 +
 jena-arq/testing/ARQ/GroupBy/agg-1.srj          |     3 +-
 jena-arq/testing/ARQ/GroupBy/agg-2.srj          |     3 +-
 jena-arq/testing/ARQ/SPARQL11_RDF11.txt         |    24 +
 jena-arq/testing/ARQ/Sort/sort-2.rq             |     2 +-
 jena-arq/testing/ARQ/Sort/sort-3.rq             |     2 +-
 .../testing/ARQ/Sort/sort-result-2_RDF_10.ttl   |   169 +
 .../testing/ARQ/Sort/sort-result-2_RDF_11.ttl   |   169 +
 .../testing/ARQ/Sort/sort-result-3_RDF_10.ttl   |   169 +
 .../testing/ARQ/Sort/sort-result-3_RDF_11.ttl   |   169 +
 jena-arq/testing/DAWG-Final/AFS.txt             |     8 -
 jena-arq/testing/DAWG-Final/SPARQL11_RDF11.txt  |    15 +
 .../DAWG-Final/distinct/distinct-all_RDF_10.srx |   111 +
 .../DAWG-Final/distinct/distinct-all_RDF_11.srx |    93 +
 .../DAWG-Final/distinct/distinct-str_RDF_10.srx |    56 +
 .../DAWG-Final/distinct/distinct-str_RDF_11.srx |    38 +
 jena-core/NOTICE                                |     2 +-
 jena-core/pom.xml                               |     2 +-
 .../main/java/com/hp/hpl/jena/JenaRuntime.java  |     2 +-
 .../assemblers/FileModelAssembler.java          |    17 +-
 .../assemblers/UnionModelAssembler.java         |    24 +-
 .../com/hp/hpl/jena/datatypes/TypeMapper.java   |     4 +-
 .../hp/hpl/jena/datatypes/xsd/XSDDatatype.java  |     2 +-
 .../jena/datatypes/xsd/impl/RDFLangString.java  |    66 +
 .../jena/datatypes/xsd/impl/XMLLiteralType.java |     4 +-
 .../datatypes/xsd/impl/XSDBaseStringType.java   |    24 +-
 .../java/com/hp/hpl/jena/graph/Factory.java     |    17 +-
 .../main/java/com/hp/hpl/jena/graph/Graph.java  |    18 +-
 .../java/com/hp/hpl/jena/graph/GraphUtil.java   |   129 +-
 .../java/com/hp/hpl/jena/graph/NodeFactory.java |   146 +-
 .../main/java/com/hp/hpl/jena/graph/Triple.java |    12 +-
 .../java/com/hp/hpl/jena/graph/TripleMatch.java |     4 +
 .../com/hp/hpl/jena/graph/compose/Delta.java    |     4 +-
 .../hp/hpl/jena/graph/compose/Difference.java   |     2 +-
 .../hpl/jena/graph/compose/DisjointUnion.java   |     3 +-
 .../com/hp/hpl/jena/graph/compose/Dyadic.java   |     4 +-
 .../hp/hpl/jena/graph/compose/Intersection.java |     2 +-
 .../hp/hpl/jena/graph/compose/MultiUnion.java   |     6 +-
 .../com/hp/hpl/jena/graph/compose/Union.java    |    11 +-
 .../hp/hpl/jena/graph/impl/CollectionGraph.java |    33 +-
 .../com/hp/hpl/jena/graph/impl/GraphBase.java   |    28 +-
 .../hp/hpl/jena/graph/impl/LiteralLabel.java    |     4 +-
 .../jena/graph/impl/LiteralLabelFactory.java    |    86 +-
 .../hpl/jena/graph/impl/LiteralLabelImpl.java   |   188 +-
 .../hpl/jena/graph/impl/SimpleEventManager.java |   243 +-
 .../com/hp/hpl/jena/graph/impl/TripleStore.java |     2 +-
 .../hp/hpl/jena/graph/impl/WrappedGraph.java    |     8 +-
 .../main/java/com/hp/hpl/jena/mem/GraphMem.java |     4 +-
 .../hp/hpl/jena/mem/GraphTripleStoreBase.java   |     4 +-
 .../com/hp/hpl/jena/n3/N3JenaWriterCommon.java  |    13 +-
 .../java/com/hp/hpl/jena/ontology/OntModel.java |     8 +-
 .../rdf/model/EmptyListUpdateException.java     |     2 +-
 .../hp/hpl/jena/rdf/model/ResourceFactory.java  |     8 +-
 .../hp/hpl/jena/rdf/model/SimpleSelector.java   |     2 +-
 .../com/hp/hpl/jena/rdf/model/Statement.java    |    24 +-
 .../com/hp/hpl/jena/rdf/model/impl/AltImpl.java |     2 +-
 .../hpl/jena/rdf/model/impl/ContainerImpl.java  |     2 +-
 .../hp/hpl/jena/rdf/model/impl/LiteralImpl.java |    10 +-
 .../hp/hpl/jena/rdf/model/impl/ModelCom.java    |    12 +-
 .../hp/hpl/jena/rdf/model/impl/ReifierStd.java  |    28 +-
 .../com/hp/hpl/jena/rdf/model/impl/SeqImpl.java |     2 +-
 .../hpl/jena/rdf/model/impl/StatementBase.java  |     9 +-
 .../com/hp/hpl/jena/rdf/model/impl/Util.java    |    77 +-
 .../hp/hpl/jena/rdfxml/xmlinput/JenaReader.java |     4 +-
 .../rdfxml/xmlinput/impl/AbsXMLContext.java     |    71 +-
 .../rdfxml/xmlinput/impl/ParserSupport.java     |    16 +-
 .../jena/rdfxml/xmlinput/impl/XMLContext.java   |     9 +-
 .../rdfxml/xmlinput/lang/IanaLanguageTag.java   |   145 -
 .../hpl/jena/rdfxml/xmlinput/lang/Iso3166.java  |   308 -
 .../hpl/jena/rdfxml/xmlinput/lang/Iso639.java   |   619 -
 .../jena/rdfxml/xmlinput/lang/LanguageTag.java  |   222 -
 .../rdfxml/xmlinput/lang/LanguageTagCodes.java  |    88 -
 .../lang/LanguageTagSyntaxException.java        |    47 -
 .../hpl/jena/rdfxml/xmlinput/lang/package.html  |    27 -
 .../hpl/jena/rdfxml/xmloutput/impl/Basic.java   |    18 +-
 .../jena/rdfxml/xmloutput/impl/Unparser.java    |    49 +-
 .../com/hp/hpl/jena/reasoner/BaseInfGraph.java  |     6 +-
 .../com/hp/hpl/jena/reasoner/TriplePattern.java |    16 +-
 .../rulesys/BasicForwardRuleInfGraph.java       |     2 +-
 .../jena/reasoner/rulesys/FBRuleInfGraph.java   |     2 +-
 .../hp/hpl/jena/reasoner/rulesys/Functor.java   |     2 +-
 .../reasoner/rulesys/Node_RuleVariable.java     |     2 +-
 .../com/hp/hpl/jena/reasoner/rulesys/Rule.java  |    10 +-
 .../com/hp/hpl/jena/reasoner/rulesys/Util.java  |     8 +-
 .../hpl/jena/reasoner/rulesys/builtins/Now.java |     2 +-
 .../jena/reasoner/rulesys/impl/SafeGraph.java   |    19 +-
 .../hp/hpl/jena/shared/RandomOrderGraph.java    |     4 +-
 .../java/com/hp/hpl/jena/util/FileManager.java  |     4 +-
 .../java/com/hp/hpl/jena/util/PrintUtil.java    |    26 +-
 .../jena/util/iterator/IteratorIterator.java    |     2 +-
 .../java/com/hp/hpl/jena/vocabulary/RDF.java    |    18 +-
 jena-core/src/main/java/jena/rdfcat.java        |    61 +-
 jena-core/src/main/resources/META-INF/NOTICE    |     2 +-
 .../assembler/test/TestFileModelAssembler.java  |    62 +-
 .../jena/graph/compose/test/TestDifference.java |    60 +-
 .../hpl/jena/graph/compose/test/TestDyadic.java |     2 +-
 .../graph/compose/test/TestUnionStatistics.java |     2 +-
 .../hp/hpl/jena/graph/test/NodeCreateUtils.java |     4 +-
 .../hpl/jena/graph/test/TestFindLiterals.java   |    57 +-
 .../jena/graph/test/TestGraphBaseToString.java  |     2 +-
 .../hp/hpl/jena/graph/test/TestGraphUtils.java  |     3 +-
 .../graph/test/TestLiteralLabelSameValueAs.java |    99 +
 .../hpl/jena/graph/test/TestLiteralLabels.java  |    19 +-
 .../com/hp/hpl/jena/graph/test/TestNode.java    |   555 +-
 .../com/hp/hpl/jena/graph/test/TestPackage.java |     1 +
 .../hpl/jena/graph/test/TestTypedLiterals.java  |    62 +-
 .../com/hp/hpl/jena/mem/test/TestGraphMem.java  |     2 +-
 .../hp/hpl/jena/rdfxml/xmlinput/MoreTests.java  |     2 +-
 .../rulesys/test/FRuleEngineIFactoryTest.java   |    14 +-
 .../jena/reasoner/rulesys/test/TestBasicLP.java |    12 +-
 .../jena/reasoner/rulesys/test/TestBugs.java    |     2 +-
 .../rulesys/test/TestComparatorBuiltins.java    |    20 +-
 .../jena/reasoner/rulesys/test/TestFBRules.java |    58 +-
 .../reasoner/rulesys/test/TestLPDerivation.java |     2 +-
 jena-csv/NOTICE                                 |     2 +-
 jena-csv/pom.xml                                |    11 +-
 .../propertytable/graph/GraphPropertyTable.java |    44 +-
 .../impl/PropertyTableHashMapImpl.java          |    59 +-
 jena-csv/src/main/resources/META-INF/NOTICE     |     5 +
 .../jena/propertytable/graph/GraphCSVTest.java  |     1 -
 jena-elephas/LICENSE                            |   176 +
 jena-elephas/NOTICE                             |     5 +
 jena-elephas/jena-elephas-common/pom.xml        |    54 +
 .../rdf/types/AbstractNodeTupleWritable.java    |   193 +
 .../rdf/types/CharacteristicSetWritable.java    |   298 +
 .../rdf/types/CharacteristicWritable.java       |   160 +
 .../hadoop/rdf/types/NodeTupleWritable.java     |    80 +
 .../jena/hadoop/rdf/types/NodeWritable.java     |   188 +
 .../jena/hadoop/rdf/types/QuadWritable.java     |   136 +
 .../jena/hadoop/rdf/types/TripleWritable.java   |   138 +
 .../comparators/SimpleBinaryComparator.java     |    34 +
 .../rdf/types/converters/ThriftConverter.java   |   147 +
 .../rdf/io/types/CharacteristicTests.java       |   210 +
 .../jena/hadoop/rdf/io/types/RdfTypesTest.java  |   406 +
 .../src/test/resources/log4j.properties         |    19 +
 jena-elephas/jena-elephas-io/pom.xml            |    67 +
 .../jena/hadoop/rdf/io/HadoopIOConstants.java   |    49 +
 .../jena/hadoop/rdf/io/RdfIOConstants.java      |    81 +
 .../io/input/AbstractNLineFileInputFormat.java  |    70 +
 .../io/input/AbstractWholeFileInputFormat.java  |    42 +
 .../hadoop/rdf/io/input/QuadsInputFormat.java   |    46 +
 .../hadoop/rdf/io/input/TriplesInputFormat.java |    42 +
 .../rdf/io/input/TriplesOrQuadsInputFormat.java |    47 +
 .../io/input/jsonld/JsonLDQuadInputFormat.java  |    39 +
 .../input/jsonld/JsonLDTripleInputFormat.java   |    39 +
 .../input/nquads/BlockedNQuadsInputFormat.java  |    53 +
 .../rdf/io/input/nquads/NQuadsInputFormat.java  |    46 +
 .../nquads/WholeFileNQuadsInputFormat.java      |    51 +
 .../ntriples/BlockedNTriplesInputFormat.java    |    53 +
 .../io/input/ntriples/NTriplesInputFormat.java  |    46 +
 .../ntriples/WholeFileNTriplesInputFormat.java  |    51 +
 .../io/input/rdfjson/RdfJsonInputFormat.java    |    46 +
 .../rdf/io/input/rdfxml/RdfXmlInputFormat.java  |    46 +
 .../AbstractBlockBasedNodeTupleReader.java      |   344 +
 .../readers/AbstractBlockBasedQuadReader.java   |    51 +
 .../readers/AbstractBlockBasedTripleReader.java |    51 +
 .../AbstractLineBasedNodeTupleReader.java       |   265 +
 .../readers/AbstractLineBasedQuadReader.java    |    50 +
 .../readers/AbstractLineBasedTripleReader.java  |    51 +
 .../rdf/io/input/readers/AbstractRdfReader.java |   108 +
 .../AbstractWholeFileNodeTupleReader.java       |   328 +
 .../readers/AbstractWholeFileQuadReader.java    |    51 +
 .../readers/AbstractWholeFileTripleReader.java  |    51 +
 .../rdf/io/input/readers/QuadsReader.java       |    49 +
 .../io/input/readers/TriplesOrQuadsReader.java  |    72 +
 .../rdf/io/input/readers/TriplesReader.java     |    49 +
 .../io/input/readers/TriplesToQuadsReader.java  |   102 +
 .../input/readers/jsonld/JsonLDQuadReader.java  |    32 +
 .../readers/jsonld/JsonLDTripleReader.java      |    30 +
 .../readers/nquads/BlockedNQuadsReader.java     |    45 +
 .../io/input/readers/nquads/NQuadsReader.java   |    49 +
 .../readers/nquads/WholeFileNQuadsReader.java   |    42 +
 .../readers/ntriples/BlockedNTriplesReader.java |    45 +
 .../input/readers/ntriples/NTriplesReader.java  |    48 +
 .../ntriples/WholeFileNTriplesReader.java       |    42 +
 .../io/input/readers/rdfjson/RdfJsonReader.java |    37 +
 .../io/input/readers/rdfxml/RdfXmlReader.java   |    37 +
 .../input/readers/thrift/ThriftQuadReader.java  |    32 +
 .../readers/thrift/ThriftTripleReader.java      |    30 +
 .../rdf/io/input/readers/trig/TriGReader.java   |    37 +
 .../rdf/io/input/readers/trix/TriXReader.java   |    37 +
 .../io/input/readers/turtle/TurtleReader.java   |    37 +
 .../io/input/thrift/ThriftQuadInputFormat.java  |    39 +
 .../input/thrift/ThriftTripleInputFormat.java   |    39 +
 .../rdf/io/input/trig/TriGInputFormat.java      |    46 +
 .../rdf/io/input/trix/TriXInputFormat.java      |    42 +
 .../rdf/io/input/turtle/TurtleInputFormat.java  |    46 +
 .../rdf/io/input/util/BlockInputStream.java     |    94 +
 .../hadoop/rdf/io/input/util/RdfIOUtils.java    |   101 +
 .../rdf/io/input/util/TrackableInputStream.java |    38 +
 .../rdf/io/input/util/TrackedInputStream.java   |   124 +
 .../io/input/util/TrackedPipedQuadsStream.java  |    55 +
 .../io/input/util/TrackedPipedRDFStream.java    |    64 +
 .../input/util/TrackedPipedTriplesStream.java   |    56 +
 .../AbstractBatchedNodeTupleOutputFormat.java   |    55 +
 .../rdf/io/output/AbstractNodeOutputFormat.java |    94 +
 .../output/AbstractNodeTupleOutputFormat.java   |   109 +
 .../AbstractStreamRdfNodeTupleOutputFormat.java |    73 +
 .../hadoop/rdf/io/output/QuadsOutputFormat.java |    64 +
 .../io/output/TriplesOrQuadsOutputFormat.java   |    74 +
 .../rdf/io/output/TriplesOutputFormat.java      |    61 +
 .../output/jsonld/JsonLDQuadOutputFormat.java   |    44 +
 .../output/jsonld/JsonLDTripleOutputFormat.java |    44 +
 .../io/output/nquads/NQuadsOutputFormat.java    |    52 +
 .../ntriples/NTriplesNodeOutputFormat.java      |    45 +
 .../output/ntriples/NTriplesOutputFormat.java   |    52 +
 .../io/output/rdfjson/RdfJsonOutputFormat.java  |    52 +
 .../io/output/rdfxml/RdfXmlOutputFormat.java    |    52 +
 .../output/thrift/ThriftQuadOutputFormat.java   |    51 +
 .../output/thrift/ThriftTripleOutputFormat.java |    52 +
 .../io/output/trig/BatchedTriGOutputFormat.java |    54 +
 .../rdf/io/output/trig/TriGOutputFormat.java    |    58 +
 .../rdf/io/output/trix/TriXOutputFormat.java    |    57 +
 .../turtle/BatchedTurtleOutputFormat.java       |    50 +
 .../io/output/turtle/TurtleOutputFormat.java    |    56 +
 .../writers/AbstractBatchedNodeTupleWriter.java |   113 +
 .../writers/AbstractBatchedQuadWriter.java      |    80 +
 .../writers/AbstractBatchedTripleWriter.java    |    68 +
 .../AbstractLineBasedNodeTupleWriter.java       |   152 +
 .../writers/AbstractLineBasedQuadWriter.java    |    71 +
 .../writers/AbstractLineBasedTripleWriter.java  |    68 +
 .../io/output/writers/AbstractNodeWriter.java   |   192 +
 .../AbstractStreamRdfNodeTupleWriter.java       |    71 +
 .../AbstractWholeFileNodeTupleWriter.java       |    96 +
 .../writers/AbstractWholeFileQuadWriter.java    |    66 +
 .../writers/AbstractWholeFileTripleWriter.java  |    65 +
 .../io/output/writers/QuadsToTriplesWriter.java |    59 +
 .../io/output/writers/StreamRdfQuadWriter.java  |    45 +
 .../output/writers/StreamRdfTripleWriter.java   |    44 +
 .../output/writers/jsonld/JsonLDQuadWriter.java |    38 +
 .../writers/jsonld/JsonLDTripleWriter.java      |    38 +
 .../io/output/writers/nquads/NQuadsWriter.java  |    57 +
 .../writers/ntriples/NTriplesNodeWriter.java    |    59 +
 .../output/writers/ntriples/NTriplesWriter.java |    58 +
 .../output/writers/rdfjson/RdfJsonWriter.java   |    51 +
 .../io/output/writers/rdfxml/RdfXmlWriter.java  |    51 +
 .../output/writers/thrift/ThriftQuadWriter.java |    38 +
 .../writers/thrift/ThriftTripleWriter.java      |    38 +
 .../output/writers/trig/BatchedTriGWriter.java  |    52 +
 .../writers/turtle/BatchedTurtleWriter.java     |    54 +
 .../rdf/io/registry/HadoopRdfIORegistry.java    |   310 +
 .../hadoop/rdf/io/registry/ReaderFactory.java   |    83 +
 .../hadoop/rdf/io/registry/WriterFactory.java   |    96 +
 .../readers/AbstractQuadsOnlyReaderFactory.java |    83 +
 .../registry/readers/AbstractReaderFactory.java |    80 +
 .../AbstractTriplesOnlyReaderFactory.java       |    83 +
 .../registry/readers/JsonLDReaderFactory.java   |    49 +
 .../registry/readers/NQuadsReaderFactory.java   |    42 +
 .../registry/readers/NTriplesReaderFactory.java |    38 +
 .../registry/readers/RdfJsonReaderFactory.java  |    41 +
 .../registry/readers/RdfXmlReaderFactory.java   |    40 +
 .../registry/readers/ThriftReaderFactory.java   |    49 +
 .../io/registry/readers/TriGReaderFactory.java  |    42 +
 .../io/registry/readers/TriXReaderFactory.java  |    41 +
 .../registry/readers/TurtleReaderFactory.java   |    40 +
 .../writers/AbstractQuadsOnlyWriterFactory.java |    86 +
 .../AbstractTriplesOnlyWriterFactory.java       |    85 +
 .../registry/writers/AbstractWriterFactory.java |    82 +
 .../registry/writers/JsonLDWriterFactory.java   |    52 +
 .../registry/writers/NQuadsWriterFactory.java   |    44 +
 .../registry/writers/NTriplesWriterFactory.java |    44 +
 .../registry/writers/RdfJsonWriterFactory.java  |    43 +
 .../registry/writers/RdfXmlWriterFactory.java   |    44 +
 .../registry/writers/ThriftWriterFactory.java   |    57 +
 .../io/registry/writers/TriGWriterFactory.java  |    45 +
 .../io/registry/writers/TriXWriterFactory.java  |    47 +
 .../registry/writers/TurtleWriterFactory.java   |    45 +
 ...he.jena.hadoop.rdf.io.registry.ReaderFactory |    10 +
 ...he.jena.hadoop.rdf.io.registry.WriterFactory |    10 +
 .../rdf/io/RdfTriplesInputTestMapper.java       |    47 +
 .../AbstractBlockedQuadInputFormatTests.java    |    33 +
 .../AbstractBlockedTripleInputFormatTests.java  |    33 +
 .../AbstractNodeTupleInputFormatTests.java      |   612 +
 .../io/input/AbstractQuadsInputFormatTests.java |    70 +
 .../input/AbstractTriplesInputFormatTests.java  |    72 +
 .../AbstractWholeFileQuadInputFormatTests.java  |   115 +
 ...AbstractWholeFileTripleInputFormatTests.java |   108 +
 .../io/input/bnodes/AbstractBlankNodeTests.java |   636 +
 .../bnodes/AbstractTripleBlankNodeTests.java    |    65 +
 .../input/bnodes/JsonLdTripleBlankNodeTest.java |    63 +
 .../io/input/bnodes/NTriplesBlankNodeTest.java  |    58 +
 .../io/input/bnodes/RdfJsonBlankNodeTest.java   |    58 +
 .../io/input/bnodes/RdfThriftBlankNodeTest.java |    68 +
 .../io/input/bnodes/RdfXmlBlankNodeTest.java    |    62 +
 .../io/input/bnodes/TurtleBlankNodeTest.java    |    58 +
 ...ractCompressedNodeTupleInputFormatTests.java |    74 +
 ...AbstractCompressedQuadsInputFormatTests.java |    71 +
 ...stractCompressedTriplesInputFormatTests.java |    71 +
 ...CompressedWholeFileQuadInputFormatTests.java |   150 +
 ...mpressedWholeFileTripleInputFormatTests.java |   144 +
 ...actCompressedJsonLDQuadInputFormatTests.java |    74 +
 ...tCompressedJsonLDTripleInputFormatTests.java |    74 +
 .../jsonld/BZippedJsonLDQuadInputTest.java      |    34 +
 .../jsonld/BZippedJsonLDTripleInputTest.java    |    34 +
 .../jsonld/DeflatedJsonLDQuadInputTest.java     |    34 +
 .../jsonld/DeflatedJsonLDTripleInputTest.java   |    34 +
 .../jsonld/GZippedJsonLDQuadInputTest.java      |    34 +
 .../jsonld/GZippedJsonLDTripleInputTest.java    |    34 +
 ...bstractCompressedNQuadsInputFormatTests.java |    68 +
 ...mpressedWholeFileNQuadsInputFormatTests.java |    75 +
 .../nquads/BZipppedNQuadsInputTest.java         |    38 +
 .../BZipppedWholeFileNQuadsInputTest.java       |    37 +
 .../nquads/DeflatedNQuadsInputTest.java         |    37 +
 .../DeflatedWholeFileNQuadsInputTest.java       |    37 +
 .../nquads/GZippedNQuadsInputTest.java          |    38 +
 .../nquads/GZippedWholeFileNQuadsInputTest.java |    38 +
 ...mpressedBlockedNTriplesInputFormatTests.java |    53 +
 ...tractCompressedNTriplesInputFormatTests.java |    68 +
 ...ressedWholeFileNTriplesInputFormatTests.java |    75 +
 .../ntriples/BZippedBlockedNTriplesInput.java   |    37 +
 .../ntriples/BZippedNTriplesInputTest.java      |    38 +
 .../BZippedWholeFileNTriplesInputTest.java      |    38 +
 .../ntriples/DeflatedBlockedNTriplesInput.java  |    37 +
 .../ntriples/DeflatedNTriplesInputTest.java     |    38 +
 .../DeflatedWholeFileNTriplesInputTest.java     |    38 +
 .../ntriples/GZippedBlockedNTriplesInput.java   |    37 +
 .../ntriples/GZippedNTriplesInputTest.java      |    41 +
 .../GZippedWholeFileNTriplesInputTest.java      |    38 +
 ...stractCompressedRdfJsonInputFormatTests.java |    74 +
 .../rdfjson/BZippedRdfJsonInputTest.java        |    37 +
 .../rdfjson/DeflatedRdfJsonInputTest.java       |    37 +
 .../rdfjson/GZippedRdfJsonInputTest.java        |    37 +
 ...bstractCompressedRdfXmlInputFormatTests.java |    75 +
 .../rdfxml/BZippedRdfXmlInputTest.java          |    37 +
 .../rdfxml/DeflatedRdfXmlInputTest.java         |    37 +
 .../rdfxml/GZippedRdfXmlInputTest.java          |    37 +
 ...actCompressedThriftQuadInputFormatTests.java |    72 +
 ...tCompressedThriftTripleInputFormatTests.java |    72 +
 .../thrift/BZippedThriftQuadInputTest.java      |    34 +
 .../thrift/BZippedThriftTripleInputTest.java    |    34 +
 .../thrift/DeflatedThriftQuadInputTest.java     |    34 +
 .../thrift/DeflatedThriftTripleInputTest.java   |    34 +
 .../thrift/GZippedThriftQuadInputTest.java      |    34 +
 .../thrift/GZippedThriftTripleInputTest.java    |    34 +
 .../AbstractCompressedTriGInputFormatTests.java |    72 +
 .../compressed/trig/BZippedTriGInputTest.java   |    37 +
 .../compressed/trig/DeflatedTriGInputTest.java  |    37 +
 .../compressed/trig/GZippedTriGInputTest.java   |    37 +
 .../AbstractCompressedTriXInputFormatTests.java |    72 +
 .../compressed/trix/BZippedTriXInputTest.java   |    35 +
 .../compressed/trix/DeflatedTriXInputTest.java  |    35 +
 .../compressed/trix/GZippedTriXInputTest.java   |    35 +
 ...bstractCompressedTurtleInputFormatTests.java |    75 +
 .../turtle/BZippedTurtleInputTest.java          |    37 +
 .../turtle/DeflatedTurtleInputTest.java         |    37 +
 .../turtle/GZippedTurtleInputTest.java          |    37 +
 .../io/input/jsonld/JsonLDQuadInputTest.java    |    50 +
 .../io/input/jsonld/JsonLDTripleInputTest.java  |    50 +
 .../io/input/nquads/BlockedNQuadsInputTest.java |    51 +
 .../rdf/io/input/nquads/NQuadsInputTest.java    |    44 +
 .../input/nquads/WholeFileNQuadsInputTest.java  |    51 +
 .../ntriples/BlockedNTriplesInputTest.java      |    50 +
 .../io/input/ntriples/NTriplesInputTest.java    |    44 +
 .../ntriples/WholeFileNTriplesInputTest.java    |    52 +
 .../rdf/io/input/rdfjson/RdfJsonInputTest.java  |    51 +
 .../rdf/io/input/rdfxml/RdfXmlInputTest.java    |    51 +
 .../io/input/thrift/ThriftQuadInputTest.java    |    51 +
 .../io/input/thrift/ThriftTripleInputTest.java  |    51 +
 .../hadoop/rdf/io/input/trig/TriGInputTest.java |    50 +
 .../hadoop/rdf/io/input/trix/TriXInputTest.java |    50 +
 .../rdf/io/input/turtle/TurtleInputTest.java    |    50 +
 .../util/AbstractTrackableInputStreamTests.java |   701 +
 .../rdf/io/input/util/BlockInputStreamTest.java |   240 +
 .../io/input/util/TrackedInputStreamTest.java   |    39 +
 .../AbstractNodeTupleOutputFormatTests.java     |   255 +
 .../output/AbstractQuadOutputFormatTests.java   |    51 +
 .../output/AbstractTripleOutputFormatTests.java |    47 +
 .../io/output/jsonld/JsonLdQuadOutputTest.java  |    47 +
 .../output/jsonld/JsonLdTripleOutputTest.java   |    47 +
 .../rdf/io/output/nquads/NQuadsOutputTest.java  |    51 +
 .../io/output/ntriples/NTriplesOutputTest.java  |    51 +
 .../io/output/rdfjson/RdfJsonOutputTest.java    |    51 +
 .../rdf/io/output/rdfxml/RdfXmlOutputTest.java  |    51 +
 .../io/output/thrift/ThriftQuadOutputTest.java  |    48 +
 .../output/thrift/ThriftTripleOutputTest.java   |    48 +
 .../io/output/trig/BatchedTriGOutputTest.java   |    92 +
 .../io/output/trig/StreamedTriGOutputTest.java  |    92 +
 .../output/trig/TriGBlankNodeOutputTests.java   |   120 +
 .../rdf/io/output/trix/TriXOutputTest.java      |    47 +
 .../output/turtle/BatchedTurtleOutputTest.java  |    92 +
 .../output/turtle/StreamedTurtleOutputTest.java |    92 +
 .../turtle/TurtleBlankNodeOutputTests.java      |   118 +
 .../io/registry/TestHadoopRdfIORegistry.java    |   186 +
 .../src/test/resources/log4j.properties         |    12 +
 jena-elephas/jena-elephas-mapreduce/pom.xml     |    87 +
 .../jena/hadoop/rdf/mapreduce/KeyMapper.java    |    54 +
 .../hadoop/rdf/mapreduce/KeyPlusNullMapper.java |    55 +
 .../jena/hadoop/rdf/mapreduce/KeyReducer.java   |    39 +
 .../hadoop/rdf/mapreduce/NullPlusKeyMapper.java |    55 +
 .../rdf/mapreduce/NullPlusKeyReducer.java       |    59 +
 .../rdf/mapreduce/NullPlusValueMapper.java      |    55 +
 .../rdf/mapreduce/NullPlusValueReducer.java     |    64 +
 .../rdf/mapreduce/RdfMapReduceConstants.java    |    67 +
 .../jena/hadoop/rdf/mapreduce/SwapMapper.java   |    55 +
 .../jena/hadoop/rdf/mapreduce/SwapReducer.java  |    43 +
 .../hadoop/rdf/mapreduce/TextCountReducer.java  |    49 +
 .../jena/hadoop/rdf/mapreduce/ValueMapper.java  |    54 +
 .../rdf/mapreduce/ValuePlusNullMapper.java      |    55 +
 .../jena/hadoop/rdf/mapreduce/ValueReducer.java |    44 +
 ...tractCharacteristicSetGeneratingReducer.java |   179 +
 .../CharacteristicSetReducer.java               |    68 +
 .../QuadCharacteristicSetGeneratingReducer.java |    39 +
 ...ripleCharacteristicSetGeneratingReducer.java |    40 +
 .../count/AbstractNodeTupleNodeCountMapper.java |    66 +
 .../rdf/mapreduce/count/NodeCountReducer.java   |    50 +
 .../mapreduce/count/QuadNodeCountMapper.java    |    44 +
 .../mapreduce/count/TripleNodeCountMapper.java  |    42 +
 .../datatypes/QuadDataTypeCountMapper.java      |    56 +
 .../datatypes/TripleDataTypeCountMapper.java    |    56 +
 .../AbstractNodeTupleNamespaceCountMapper.java  |   135 +
 .../namespaces/QuadNamespaceCountMapper.java    |    44 +
 .../namespaces/TripleNamespaceCountMapper.java  |    44 +
 .../count/positional/QuadGraphCountMapper.java  |    42 +
 .../count/positional/QuadObjectCountMapper.java |    42 +
 .../positional/QuadPredicateCountMapper.java    |    42 +
 .../positional/QuadSubjectCountMapper.java      |    41 +
 .../positional/TripleObjectCountMapper.java     |    41 +
 .../positional/TriplePredicateCountMapper.java  |    42 +
 .../positional/TripleSubjectCountMapper.java    |    41 +
 .../filter/AbstractNodeTupleFilterMapper.java   |    76 +
 .../filter/AbstractQuadFilterMapper.java        |    35 +
 .../filter/AbstractTripleFilterMapper.java      |    35 +
 .../filter/GroundQuadFilterMapper.java          |    47 +
 .../filter/GroundTripleFilterMapper.java        |    47 +
 .../mapreduce/filter/ValidQuadFilterMapper.java |    48 +
 .../filter/ValidTripleFilterMapper.java         |    47 +
 .../AbstractQuadFilterByPositionMapper.java     |   171 +
 .../AbstractTripleFilterByPositionMapper.java   |   141 +
 .../positional/QuadFilterByGraphUriMapper.java  |    76 +
 .../positional/QuadFilterByObjectUriMapper.java |    76 +
 .../positional/QuadFilterByPredicateMapper.java |    76 +
 .../QuadFilterBySubjectUriMapper.java           |    76 +
 .../TripleFilterByObjectUriMapper.java          |    71 +
 .../TripleFilterByPredicateUriMapper.java       |    71 +
 .../TripleFilterBySubjectUriMapper.java         |    71 +
 .../group/AbstractNodeTupleGroupingMapper.java  |    60 +
 .../group/AbstractQuadGroupingMapper.java       |    50 +
 .../group/AbstractTripleGroupingMapper.java     |    44 +
 .../mapreduce/group/QuadGroupByGraphMapper.java |    39 +
 .../group/QuadGroupByObjectMapper.java          |    39 +
 .../group/QuadGroupByPredicateMapper.java       |    39 +
 .../group/QuadGroupBySubjectMapper.java         |    39 +
 .../group/TripleGroupByObjectMapper.java        |    41 +
 .../group/TripleGroupByPredicateMapper.java     |    41 +
 .../group/TripleGroupBySubjectMapper.java       |    41 +
 .../AbstractNodeTupleSplitToNodesMapper.java    |    60 +
 .../AbstractNodeTupleSplitWithNodesMapper.java  |    60 +
 .../mapreduce/split/QuadSplitToNodesMapper.java |    43 +
 .../split/QuadSplitWithNodesMapper.java         |    43 +
 .../split/TripleSplitToNodesMapper.java         |    41 +
 .../split/TripleSplitWithNodesMapper.java       |    41 +
 .../transform/AbstractTriplesToQuadsMapper.java |    60 +
 .../transform/QuadsToTriplesMapper.java         |    46 +
 .../TriplesToQuadsBySubjectMapper.java          |    40 +
 .../TriplesToQuadsConstantGraphMapper.java      |    75 +
 .../rdf/mapreduce/AbstractMapReduceTests.java   |    69 +
 .../rdf/mapreduce/AbstractMapperTests.java      |    69 +
 .../rdf/mapreduce/TestDistinctTriples.java      |   129 +
 ...CharacteristicSetGeneratingReducerTests.java |   185 +
 .../CharacteristicSetReducerTest.java           |   192 +
 ...eCharacteristicSetGeneratingReducerTest.java |    59 +
 .../AbstractNodeTupleNodeCountReducedTests.java |   149 +
 .../count/AbstractNodeTupleNodeCountTests.java  |   138 +
 .../count/QuadNodeCountMapReduceTest.java       |    67 +
 .../count/QuadNodeCountMapperTest.java          |    59 +
 .../count/TripleNodeCountMapReduceTest.java     |    66 +
 .../count/TripleNodeCountMapperTest.java        |    58 +
 .../filter/AbstractNodeTupleFilterTests.java    |   146 +
 .../filter/AbstractQuadValidityFilterTests.java |    86 +
 .../AbstractTripleValidityFilterTests.java      |    73 +
 .../TripleFilterByNoPredicateMapperTest.java    |    49 +
 .../TripleFilterByPredicateMapperTest.java      |    80 +
 ...leInvertedFilterByNoPredicateMapperTest.java |    54 +
 ...ipleInvertedFilterByPredicateMapperTest.java |    87 +
 .../filter/ValidQuadFilterMapperTest.java       |    40 +
 .../filter/ValidTripleFilterMapperTest.java     |    40 +
 .../group/AbstractNodeTupleGroupingTests.java   |   114 +
 .../group/AbstractQuadGroupingTests.java        |    43 +
 .../group/AbstractTripleGroupingTests.java      |    41 +
 .../group/QuadGroupByGraphMapperTest.java       |    46 +
 .../group/QuadGroupByObjectMapperTest.java      |    46 +
 .../group/QuadGroupByPredicateMapperTest.java   |    46 +
 .../group/QuadGroupBySubjectMapperTest.java     |    46 +
 .../group/TripleGroupByObjectMapperTest.java    |    46 +
 .../group/TripleGroupByPredicateMapperTest.java |    46 +
 .../group/TripleGroupBySubjectMapperTest.java   |    46 +
 .../AbstractNodeTupleSplitToNodesTests.java     |   116 +
 .../AbstractNodeTupleSplitWithNodesTests.java   |   116 +
 .../split/AbstractQuadSplitToNodesTests.java    |    53 +
 .../split/AbstractQuadSplitWithNodesTests.java  |    53 +
 .../split/AbstractTripleSplitToNodesTests.java  |    52 +
 .../AbstractTripleSplitWithNodesTests.java      |    52 +
 .../split/QuadSplitToNodesMapperTest.java       |    41 +
 .../split/QuadSplitWithNodesMapperTest.java     |    41 +
 .../split/TripleSplitToNodesMapperTest.java     |    41 +
 .../split/TripleSplitWithNodesMapperTest.java   |    42 +
 .../transform/QuadsToTriplesMapperTest.java     |   113 +
 .../TriplesToQuadsBySubjectMapperTest.java      |   113 +
 .../TriplesToQuadsConstantGraphMapperTest.java  |   113 +
 .../src/test/resources/log4j.properties         |    12 +
 jena-elephas/jena-elephas-stats/hadoop-job.xml  |    46 +
 jena-elephas/jena-elephas-stats/pom.xml         |   102 +
 .../apache/jena/hadoop/rdf/stats/RdfStats.java  |   425 +
 .../jena/hadoop/rdf/stats/jobs/JobFactory.java  |   821 +
 jena-elephas/pom.xml                            |   110 +
 jena-extras/jena-querybuilder/pom.xml           |     2 +-
 .../arq/querybuilder/AbstractQueryBuilder.java  |     2 +-
 .../jena/arq/AbstractRegexpBasedTest.java       |    14 +-
 .../querybuilder/AbstractQueryBuilderTest.java  |     2 +-
 .../arq/querybuilder/SelectBuilderTest.java     |     3 +-
 .../querybuilder/clauses/WhereClauseTest.java   |    79 +-
 .../handlers/SolutionModifierHandlerTest.java   |     2 +-
 .../querybuilder/handlers/WhereHandlerTest.java |     2 +-
 jena-extras/pom.xml                             |     2 +-
 jena-fuseki/.gitignore                          |     1 +
 jena-fuseki/NOTICE                              |     2 +-
 jena-fuseki/dist/NOTICE                         |     2 +-
 jena-fuseki/fuseki                              |    19 +-
 jena-fuseki/pages/xml-to-html-links.xsl         |    47 +-
 jena-fuseki/pom.xml                             |     6 +-
 jena-fuseki/run-fuseki                          |     4 +-
 jena-fuseki/run_cp                              |    25 -
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |    88 +-
 .../jena/fuseki/servlets/SPARQL_Query.java      |    18 +-
 jena-fuseki/src/main/resources/META-INF/NOTICE  |     2 +-
 jena-fuseki2/D.trig                             |    20 -
 jena-fuseki2/D.ttl                              |    19 -
 jena-fuseki2/Data/books.ttl                     |    62 -
 jena-fuseki2/Data/test_abox.ttl                 |    21 -
 jena-fuseki2/Data/test_data_rdfs.ttl            |    28 -
 jena-fuseki2/Data/test_tbox.ttl                 |    25 -
 jena-fuseki2/LICENSE                            |    17 +-
 jena-fuseki2/NOTICE                             |     2 +-
 .../apache-jena-fuseki/assembly-dist.xml        |    99 +
 jena-fuseki2/apache-jena-fuseki/backup          |    22 +
 jena-fuseki2/apache-jena-fuseki/bin/s-delete    |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-get       |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-head      |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-post      |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-put       |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-query     |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/s-update    |   707 +
 .../apache-jena-fuseki/bin/s-update-form        |   707 +
 jena-fuseki2/apache-jena-fuseki/bin/soh         |   707 +
 jena-fuseki2/apache-jena-fuseki/dist/ABOUT      |     1 +
 jena-fuseki2/apache-jena-fuseki/dist/LICENSE    |   617 +
 jena-fuseki2/apache-jena-fuseki/dist/NOTICE     |   216 +
 jena-fuseki2/apache-jena-fuseki/fuseki          |   486 +
 jena-fuseki2/apache-jena-fuseki/fuseki-server   |    80 +
 .../apache-jena-fuseki/fuseki-server.bat        |    28 +
 jena-fuseki2/apache-jena-fuseki/pom.xml         |    95 +
 jena-fuseki2/assembly-dist.xml                  |    88 -
 jena-fuseki2/backup                             |    22 -
 jena-fuseki2/bin/s-delete                       |   707 -
 jena-fuseki2/bin/s-get                          |   707 -
 jena-fuseki2/bin/s-head                         |   707 -
 jena-fuseki2/bin/s-post                         |   707 -
 jena-fuseki2/bin/s-put                          |   707 -
 jena-fuseki2/bin/s-query                        |   707 -
 jena-fuseki2/bin/s-update                       |   707 -
 jena-fuseki2/bin/s-update-form                  |   707 -
 jena-fuseki2/bin/soh                            |   707 -
 jena-fuseki2/dist/ABOUT                         |     1 -
 jena-fuseki2/dist/LICENSE                       |   608 -
 jena-fuseki2/dist/NOTICE                        |   216 -
 jena-fuseki2/dwim                               |    19 -
 jena-fuseki2/dwim-upload                        |    48 -
 jena-fuseki2/fuseki                             |   477 -
 jena-fuseki2/fuseki-server                      |    64 -
 jena-fuseki2/fuseki-server.bat                  |    19 -
 jena-fuseki2/jena-fuseki-core/fuseki-dev        |    77 +
 jena-fuseki2/jena-fuseki-core/make_cp_mvn       |    50 +
 jena-fuseki2/jena-fuseki-core/pom.xml           |   314 +
 .../main/java/org/apache/jena/fuseki/DEF.java   |    79 +
 .../java/org/apache/jena/fuseki/Fuseki.java     |   227 +
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |    49 +
 .../jena/fuseki/FusekiConfigException.java      |    28 +
 .../org/apache/jena/fuseki/FusekiException.java |    29 +
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   258 +
 .../org/apache/jena/fuseki/FusekiLogging.java   |   171 +
 .../jena/fuseki/FusekiNotFoundException.java    |    26 +
 .../jena/fuseki/FusekiRequestException.java     |    57 +
 .../org/apache/jena/fuseki/async/AsyncPool.java |    97 +
 .../org/apache/jena/fuseki/async/AsyncTask.java |   114 +
 .../fuseki/authz/AuthorizationFilter403.java    |    59 +
 .../apache/jena/fuseki/authz/DenyFilter.java    |    33 +
 .../jena/fuseki/authz/LocalhostFilter.java      |    62 +
 .../org/apache/jena/fuseki/build/Builder.java   |   149 +
 .../jena/fuseki/build/DataServiceDesc.java      |   107 +
 .../apache/jena/fuseki/build/FusekiConfig.java  |   261 +
 .../org/apache/jena/fuseki/build/Template.java  |    52 +
 .../jena/fuseki/build/TemplateFunctions.java    |    87 +
 .../org/apache/jena/fuseki/cmd/FusekiCmd.java   |   341 +
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |   206 +
 .../org/apache/jena/fuseki/conneg/WebLib.java   |    60 +
 .../jena/fuseki/jetty/FusekiErrorHandler.java   |    95 +
 .../apache/jena/fuseki/jetty/JettyFuseki.java   |   310 +
 .../jena/fuseki/jetty/JettyServerConfig.java    |    51 +
 .../apache/jena/fuseki/mgt/ActionAsyncTask.java |    70 +
 .../apache/jena/fuseki/mgt/ActionBackup.java    |    84 +
 .../jena/fuseki/mgt/ActionContainerItem.java    |    94 +
 .../org/apache/jena/fuseki/mgt/ActionCtl.java   |    97 +
 .../apache/jena/fuseki/mgt/ActionDatasets.java  |   404 +
 .../org/apache/jena/fuseki/mgt/ActionItem.java  |    45 +
 .../org/apache/jena/fuseki/mgt/ActionLogs.java  |    59 +
 .../org/apache/jena/fuseki/mgt/ActionPing.java  |    78 +
 .../jena/fuseki/mgt/ActionServerStatus.java     |   114 +
 .../org/apache/jena/fuseki/mgt/ActionSleep.java |    98 +
 .../org/apache/jena/fuseki/mgt/ActionStats.java |   214 +
 .../org/apache/jena/fuseki/mgt/ActionTasks.java |   125 +
 .../java/org/apache/jena/fuseki/mgt/Async.java  |    68 +
 .../java/org/apache/jena/fuseki/mgt/Backup.java |   102 +
 .../org/apache/jena/fuseki/mgt/DumpServlet.java |   312 +
 .../org/apache/jena/fuseki/mgt/JsonConst.java   |    52 +
 .../apache/jena/fuseki/mgt/JsonDescription.java |    73 +
 .../org/apache/jena/fuseki/mgt/MgtConst.java    |    30 +
 .../java/org/apache/jena/fuseki/mgt/MgtJMX.java |    61 +
 .../fuseki/migrate/DatasetGraphSwitchable.java  |    88 +
 .../jena/fuseki/migrate/GraphLoadUtils.java     |    76 +
 .../jena/fuseki/migrate/StreamRDFLimited.java   |    63 +
 .../org/apache/jena/fuseki/server/Counter.java  |    34 +
 .../jena/fuseki/server/CounterMXBean.java       |    25 +
 .../apache/jena/fuseki/server/CounterName.java  |    84 +
 .../apache/jena/fuseki/server/CounterSet.java   |    70 +
 .../org/apache/jena/fuseki/server/Counters.java |    25 +
 .../jena/fuseki/server/DataAccessPoint.java     |    75 +
 .../fuseki/server/DataAccessPointRegistry.java  |    37 +
 .../apache/jena/fuseki/server/DataService.java  |   199 +
 .../jena/fuseki/server/DatasetMXBean.java       |    35 +
 .../jena/fuseki/server/DatasetStatus.java       |    40 +
 .../org/apache/jena/fuseki/server/Endpoint.java |    68 +
 .../apache/jena/fuseki/server/FusekiEnv.java    |   164 +
 .../apache/jena/fuseki/server/FusekiServer.java |   395 +
 .../server/FusekiServerEnvironmentInit.java     |    41 +
 .../fuseki/server/FusekiServerListener.java     |    81 +
 .../apache/jena/fuseki/server/FusekiVocab.java  |    77 +
 .../jena/fuseki/server/OperationName.java       |    37 +
 .../apache/jena/fuseki/server/RequestLog.java   |   148 +
 .../jena/fuseki/server/ServerInitialConfig.java |    39 +
 .../jena/fuseki/server/ServiceMXBean.java       |    32 +
 .../fuseki/server/ShiroEnvironmentLoader.java   |   164 +
 .../apache/jena/fuseki/server/SystemState.java  |   108 +
 .../apache/jena/fuseki/servlets/ActionBase.java |   265 +
 .../fuseki/servlets/ActionErrorException.java   |    32 +
 .../apache/jena/fuseki/servlets/ActionLib.java  |   180 +
 .../apache/jena/fuseki/servlets/ActionREST.java |   161 +
 .../jena/fuseki/servlets/ActionSPARQL.java      |   207 +
 .../fuseki/servlets/ConcurrencyPolicyMRSW.java  |   113 +
 .../jena/fuseki/servlets/FusekiFilter.java      |    87 +
 .../apache/jena/fuseki/servlets/HttpAction.java |   387 +
 .../servlets/HttpServletResponseTracker.java    |   140 +
 .../jena/fuseki/servlets/NullOutputStream.java  |    53 +
 .../apache/jena/fuseki/servlets/REST_Quads.java |    68 +
 .../jena/fuseki/servlets/REST_Quads_R.java      |    99 +
 .../jena/fuseki/servlets/REST_Quads_RW.java     |   136 +
 .../jena/fuseki/servlets/ResponseCallback.java  |    24 +
 .../jena/fuseki/servlets/ResponseModel.java     |   136 +
 .../jena/fuseki/servlets/ResponseOps.java       |    94 +
 .../jena/fuseki/servlets/ResponseResultSet.java |   322 +
 .../apache/jena/fuseki/servlets/SPARQL_GSP.java |   214 +
 .../jena/fuseki/servlets/SPARQL_GSP_R.java      |   123 +
 .../jena/fuseki/servlets/SPARQL_GSP_RW.java     |   208 +
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |   101 +
 .../jena/fuseki/servlets/SPARQL_Query.java      |   396 +
 .../fuseki/servlets/SPARQL_QueryDataset.java    |    60 +
 .../fuseki/servlets/SPARQL_QueryGeneral.java    |   142 +
 .../fuseki/servlets/SPARQL_UberServlet.java     |   359 +
 .../jena/fuseki/servlets/SPARQL_Update.java     |   286 +
 .../jena/fuseki/servlets/SPARQL_Upload.java     |   291 +
 .../jena/fuseki/servlets/ServletBase.java       |    98 +
 .../apache/jena/fuseki/servlets/ServletOps.java |   209 +
 .../org/apache/jena/fuseki/servlets/Upload.java |   164 +
 .../jena/fuseki/servlets/UploadDetails.java     |    86 +
 .../jena/fuseki/validation/DataValidator.java   |   131 +
 .../jena/fuseki/validation/IRIValidator.java    |   168 +
 .../jena/fuseki/validation/QueryValidator.java  |   154 +
 .../jena/fuseki/validation/UpdateValidator.java |    91 +
 .../fuseki/validation/ValidationAction.java     |    95 +
 .../jena/fuseki/validation/ValidationError.java |    24 +
 .../fuseki/validation/ValidatorBaseJson.java    |   201 +
 .../src/main/resources/META-INF/DEPENDENCIES    |    24 +
 .../src/main/resources/META-INF/LICENSE         |   253 +
 .../src/main/resources/META-INF/NOTICE          |    16 +
 .../apache/jena/fuseki/fuseki-properties.xml    |     8 +
 .../org/apache/jena/fuseki/log4j.properties     |    42 +
 .../org/apache/jena/fuseki/server/config.ttl    |    30 +
 .../org/apache/jena/fuseki/server/shiro.ini     |    37 +
 .../jena/fuseki/server/templates/config-mem     |    27 +
 .../jena/fuseki/server/templates/config-service |    23 +
 .../jena/fuseki/server/templates/config-tdb     |    36 +
 .../jena/fuseki/server/templates/config-tdb-dir |    35 +
 .../jena/fuseki/server/templates/config-tdb-mem |    36 +
 .../src/main/webapp/WEB-INF/web.xml             |   269 +
 .../src/main/webapp/admin-logs.html             |    72 +
 .../main/webapp/css/bootstrap-select.min.css    |     7 +
 .../src/main/webapp/css/bootstrap-theme.css.map |     1 +
 .../src/main/webapp/css/bootstrap-theme.min.css |     7 +
 .../src/main/webapp/css/bootstrap.css.map       |     1 +
 .../src/main/webapp/css/bootstrap.min.css       |     7 +
 .../src/main/webapp/css/codemirror.min.css      |     1 +
 .../src/main/webapp/css/font-awesome.min.css    |     4 +
 .../src/main/webapp/css/fui.css                 |   191 +
 .../webapp/css/jquery.fileupload-noscript.css   |    22 +
 .../css/jquery.fileupload-ui-noscript.css       |    17 +
 .../main/webapp/css/jquery.fileupload-ui.css    |    57 +
 .../src/main/webapp/css/jquery.fileupload.css   |    36 +
 .../src/main/webapp/css/pivot.min.css           |     1 +
 .../src/main/webapp/css/qonsole.css             |   172 +
 .../src/main/webapp/css/yasqe.min.css           |     1 +
 .../src/main/webapp/css/yasr.min.css            |     1 +
 .../src/main/webapp/dataset.html                |   244 +
 .../src/main/webapp/documentation.html          |    80 +
 .../src/main/webapp/fonts/FontAwesome.otf       |   Bin 0 -> 75188 bytes
 .../main/webapp/fonts/fontawesome-webfont.eot   |   Bin 0 -> 72449 bytes
 .../main/webapp/fonts/fontawesome-webfont.svg   |   504 +
 .../main/webapp/fonts/fontawesome-webfont.ttf   |   Bin 0 -> 141564 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff  |   Bin 0 -> 83760 bytes
 .../fonts/glyphicons-halflings-regular.eot      |   Bin 0 -> 20335 bytes
 .../fonts/glyphicons-halflings-regular.svg      |   229 +
 .../fonts/glyphicons-halflings-regular.ttf      |   Bin 0 -> 41280 bytes
 .../fonts/glyphicons-halflings-regular.woff     |   Bin 0 -> 23320 bytes
 .../src/main/webapp/images/back_disabled.png    |   Bin 0 -> 1361 bytes
 .../src/main/webapp/images/back_enabled.png     |   Bin 0 -> 1379 bytes
 .../main/webapp/images/back_enabled_hover.png   |   Bin 0 -> 1375 bytes
 .../src/main/webapp/images/favicon.ico          |   Bin 0 -> 1085 bytes
 .../src/main/webapp/images/forward_disabled.png |   Bin 0 -> 1363 bytes
 .../src/main/webapp/images/forward_enabled.png  |   Bin 0 -> 1380 bytes
 .../webapp/images/forward_enabled_hover.png     |   Bin 0 -> 1379 bytes
 .../webapp/images/jena-logo-notext-small.png    |   Bin 0 -> 2469 bytes
 .../src/main/webapp/images/sort_asc.png         |   Bin 0 -> 1118 bytes
 .../main/webapp/images/sort_asc_disabled.png    |   Bin 0 -> 1050 bytes
 .../src/main/webapp/images/sort_both.png        |   Bin 0 -> 1136 bytes
 .../src/main/webapp/images/sort_desc.png        |   Bin 0 -> 1127 bytes
 .../main/webapp/images/sort_desc_disabled.png   |   Bin 0 -> 1045 bytes
 .../src/main/webapp/images/wait30.gif           |   Bin 0 -> 6337 bytes
 .../jena-fuseki-core/src/main/webapp/index.html |   103 +
 .../src/main/webapp/js/app/controllers/.svnkeep |     0
 .../js/app/controllers/dataset-controller.js    |    69 +
 .../js/app/controllers/index-controller.js      |    50 +
 .../js/app/controllers/manage-controller.js     |    39 +
 .../js/app/controllers/query-controller.js      |    72 +
 .../js/app/controllers/upload-controller.js     |    42 +
 .../js/app/controllers/validation-controller.js |    38 +
 .../src/main/webapp/js/app/fui.js               |    33 +
 .../src/main/webapp/js/app/layouts/.svnkeep     |     0
 .../src/main/webapp/js/app/main.dataset.js      |    31 +
 .../src/main/webapp/js/app/main.index.js        |    24 +
 .../src/main/webapp/js/app/main.manage.js       |    27 +
 .../src/main/webapp/js/app/main.validation.js   |    24 +
 .../main/webapp/js/app/models/dataset-stats.js  |   102 +
 .../src/main/webapp/js/app/models/dataset.js    |   251 +
 .../main/webapp/js/app/models/fuseki-server.js  |   155 +
 .../src/main/webapp/js/app/models/task.js       |   105 +
 .../webapp/js/app/models/validation-options.js  |    85 +
 .../src/main/webapp/js/app/qonsole-config.js    |    26 +
 .../src/main/webapp/js/app/routers/.svnkeep     |     0
 .../main/webapp/js/app/services/ping-service.js |    54 +
 .../js/app/services/validation-service.js       |    98 +
 .../webapp/js/app/templates/dataset-edit.tpl    |    58 +
 .../webapp/js/app/templates/dataset-info.tpl    |    40 +
 .../js/app/templates/dataset-management.tpl     |    53 +
 .../js/app/templates/dataset-selection-list.tpl |    22 +
 .../js/app/templates/dataset-selector.tpl       |    15 +
 .../js/app/templates/dataset-simple-create.tpl  |    79 +
 .../webapp/js/app/templates/dataset-stats.tpl   |    14 +
 .../webapp/js/app/templates/file-upload.tpl     |    46 +
 .../webapp/js/app/templates/uploadable-file.tpl |    23 +
 .../src/main/webapp/js/app/util/page-utils.js   |    33 +
 .../src/main/webapp/js/app/views/.svnkeep       |     0
 .../main/webapp/js/app/views/dataset-edit.js    |   205 +
 .../main/webapp/js/app/views/dataset-info.js    |    76 +
 .../webapp/js/app/views/dataset-management.js   |   163 +
 .../js/app/views/dataset-selection-list.js      |    58 +
 .../webapp/js/app/views/dataset-selector.js     |    84 +
 .../js/app/views/dataset-simple-create.js       |   100 +
 .../main/webapp/js/app/views/dataset-stats.js   |    41 +
 .../js/app/views/datasets-dropdown-list.js      |    43 +
 .../src/main/webapp/js/app/views/file-upload.js |   225 +
 .../webapp/js/app/views/tabbed-view-manager.js  |    63 +
 .../main/webapp/js/app/views/uploadable-file.js |    39 +
 .../webapp/js/app/views/validation-options.js   |    54 +
 .../src/main/webapp/js/common-config.js         |    93 +
 .../main/webapp/js/lib/addon/fold/brace-fold.js |   105 +
 .../webapp/js/lib/addon/fold/comment-fold.js    |    57 +
 .../main/webapp/js/lib/addon/fold/foldcode.js   |   145 +
 .../main/webapp/js/lib/addon/fold/foldgutter.js |   134 +
 .../main/webapp/js/lib/addon/fold/xml-fold.js   |   181 +
 .../src/main/webapp/js/lib/backbone-min.js      |     2 +
 .../src/main/webapp/js/lib/backbone.js          |  1581 ++
 .../main/webapp/js/lib/backbone.marionette.js   |  2385 +++
 .../main/webapp/js/lib/bootstrap-select.min.js  |     8 +
 .../src/main/webapp/js/lib/bootstrap.min.js     |     6 +
 .../src/main/webapp/js/lib/html5shiv.js         |     8 +
 .../src/main/webapp/js/lib/jquery-1.10.2.js     |  9789 +++++++++
 .../src/main/webapp/js/lib/jquery-1.10.2.min.js |     6 +
 .../src/main/webapp/js/lib/jquery-ui.min.js     |     7 +
 .../main/webapp/js/lib/jquery.dataTables.min.js |   157 +
 .../src/main/webapp/js/lib/jquery.fileupload.js |  1426 ++
 .../webapp/js/lib/jquery.fileupload.local.js    |  1428 ++
 .../src/main/webapp/js/lib/jquery.form.js       |  1278 ++
 .../webapp/js/lib/jquery.iframe-transport.js    |   214 +
 .../src/main/webapp/js/lib/jquery.ui.widget.js  |   530 +
 .../main/webapp/js/lib/jquery.xdomainrequest.js |    90 +
 .../src/main/webapp/js/lib/lib/codemirror.js    |  7638 +++++++
 .../webapp/js/lib/mode/javascript/javascript.js |   683 +
 .../main/webapp/js/lib/mode/sparql/sparql.js    |   160 +
 .../main/webapp/js/lib/mode/turtle/turtle.js    |   160 +
 .../src/main/webapp/js/lib/mode/xml/xml.js      |   384 +
 .../src/main/webapp/js/lib/pivot.js             |  1363 ++
 .../src/main/webapp/js/lib/pivot.min.js         |     2 +
 .../src/main/webapp/js/lib/pivot.min.js.map     |     1 +
 .../src/main/webapp/js/lib/plugins/text.js      |   386 +
 .../src/main/webapp/js/lib/qonsole.js           |   570 +
 .../src/main/webapp/js/lib/refresh.sh           |    21 +
 .../src/main/webapp/js/lib/require.js           |  2076 ++
 .../src/main/webapp/js/lib/require.min.js       |    36 +
 .../src/main/webapp/js/lib/respond.min.js       |     6 +
 .../src/main/webapp/js/lib/sprintf-0.7-beta1.js |   183 +
 .../src/main/webapp/js/lib/underscore.js        |  1276 ++
 .../src/main/webapp/js/lib/yasqe.min.js         |     5 +
 .../src/main/webapp/js/lib/yasqe.min.js.map     |     1 +
 .../src/main/webapp/js/lib/yasr.min.js          |     5 +
 .../src/main/webapp/js/lib/yasr.min.js.map      |     1 +
 .../src/main/webapp/manage.html                 |   107 +
 .../src/main/webapp/services.html               |    75 +
 .../src/main/webapp/test/test-fuseki-config.ttl |    27 +
 .../src/main/webapp/validate.html               |   146 +
 .../apache/jena/fuseki/AbstractFusekiTest.java  |    47 +
 .../java/org/apache/jena/fuseki/FileSender.java |    87 +
 .../java/org/apache/jena/fuseki/ServerTest.java |   157 +
 .../java/org/apache/jena/fuseki/TS_Fuseki.java  |    75 +
 .../java/org/apache/jena/fuseki/TestAdmin.java  |   538 +
 .../java/org/apache/jena/fuseki/TestAuth.java   |   405 +
 .../org/apache/jena/fuseki/TestDatasetOps.java  |   154 +
 .../org/apache/jena/fuseki/TestFileUpload.java  |   128 +
 .../java/org/apache/jena/fuseki/TestQuery.java  |   115 +
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |    95 +
 .../fuseki/http/TestDatasetAccessorHTTP.java    |   261 +
 .../http/TestDatasetGraphAccessorHTTP.java      |    43 +
 .../org/apache/jena/fuseki/http/TestHttpOp.java |   233 +
 .../jena-fuseki-core/testing/config-ds-1.ttl    |    15 +
 jena-fuseki2/jena-fuseki-server/.gitignore      |     1 +
 jena-fuseki2/jena-fuseki-server/pom.xml         |   127 +
 jena-fuseki2/jena-fuseki-war/pom.xml            |   109 +
 jena-fuseki2/make-html                          |    29 -
 jena-fuseki2/make_cp_mvn                        |    50 -
 jena-fuseki2/pom.xml                            |   381 +-
 jena-fuseki2/run-fuseki                         |    77 -
 .../main/java/org/apache/jena/fuseki/DEF.java   |    79 -
 .../java/org/apache/jena/fuseki/Fuseki.java     |   226 -
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |   334 -
 .../jena/fuseki/FusekiConfigException.java      |    28 -
 .../org/apache/jena/fuseki/FusekiException.java |    29 -
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   260 -
 .../org/apache/jena/fuseki/FusekiLogging.java   |   140 -
 .../jena/fuseki/FusekiNotFoundException.java    |    26 -
 .../jena/fuseki/FusekiRequestException.java     |    57 -
 .../org/apache/jena/fuseki/async/AsyncPool.java |    97 -
 .../org/apache/jena/fuseki/async/AsyncTask.java |   114 -
 .../fuseki/authz/AuthorizationFilter403.java    |    59 -
 .../apache/jena/fuseki/authz/DenyFilter.java    |    33 -
 .../jena/fuseki/authz/LocalhostFilter.java      |    62 -
 .../org/apache/jena/fuseki/build/Builder.java   |   149 -
 .../jena/fuseki/build/DataServiceDesc.java      |   107 -
 .../apache/jena/fuseki/build/FusekiConfig.java  |   261 -
 .../org/apache/jena/fuseki/build/Template.java  |    52 -
 .../jena/fuseki/build/TemplateFunctions.java    |    68 -
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |   123 -
 .../org/apache/jena/fuseki/conneg/WebLib.java   |    60 -
 .../jena/fuseki/jetty/FusekiErrorHandler.java   |    95 -
 .../apache/jena/fuseki/jetty/JettyFuseki.java   |   265 -
 .../jena/fuseki/jetty/JettyServerConfig.java    |    51 -
 .../apache/jena/fuseki/mgt/ActionAsyncTask.java |    70 -
 .../apache/jena/fuseki/mgt/ActionBackup.java    |    84 -
 .../jena/fuseki/mgt/ActionContainerItem.java    |    94 -
 .../org/apache/jena/fuseki/mgt/ActionCtl.java   |    97 -
 .../apache/jena/fuseki/mgt/ActionDatasets.java  |   400 -
 .../org/apache/jena/fuseki/mgt/ActionItem.java  |    45 -
 .../org/apache/jena/fuseki/mgt/ActionLogs.java  |    59 -
 .../org/apache/jena/fuseki/mgt/ActionPing.java  |    78 -
 .../jena/fuseki/mgt/ActionServerStatus.java     |   114 -
 .../org/apache/jena/fuseki/mgt/ActionSleep.java |    98 -
 .../org/apache/jena/fuseki/mgt/ActionStats.java |   214 -
 .../org/apache/jena/fuseki/mgt/ActionTasks.java |   125 -
 .../java/org/apache/jena/fuseki/mgt/Async.java  |    68 -
 .../java/org/apache/jena/fuseki/mgt/Backup.java |   102 -
 .../org/apache/jena/fuseki/mgt/DumpServlet.java |   312 -
 .../org/apache/jena/fuseki/mgt/JsonConst.java   |    52 -
 .../apache/jena/fuseki/mgt/JsonDescription.java |    73 -
 .../org/apache/jena/fuseki/mgt/MgtConst.java    |    30 -
 .../java/org/apache/jena/fuseki/mgt/MgtJMX.java |    61 -
 .../fuseki/migrate/DatasetGraphSwitchable.java  |    88 -
 .../jena/fuseki/migrate/GraphLoadUtils.java     |    76 -
 .../apache/jena/fuseki/migrate/Registry.java    |    42 -
 .../jena/fuseki/migrate/StreamRDFLimited.java   |    63 -
 .../org/apache/jena/fuseki/server/Counter.java  |    34 -
 .../jena/fuseki/server/CounterMXBean.java       |    25 -
 .../apache/jena/fuseki/server/CounterName.java  |    84 -
 .../apache/jena/fuseki/server/CounterSet.java   |    70 -
 .../org/apache/jena/fuseki/server/Counters.java |    25 -
 .../jena/fuseki/server/DataAccessPoint.java     |    75 -
 .../fuseki/server/DataAccessPointRegistry.java  |    37 -
 .../apache/jena/fuseki/server/DataService.java  |   199 -
 .../jena/fuseki/server/DatasetMXBean.java       |    35 -
 .../jena/fuseki/server/DatasetStatus.java       |    40 -
 .../org/apache/jena/fuseki/server/Endpoint.java |    68 -
 .../apache/jena/fuseki/server/FusekiServer.java |   416 -
 .../server/FusekiServletContextListener.java    |    94 -
 .../apache/jena/fuseki/server/FusekiVocab.java  |    77 -
 .../jena/fuseki/server/OperationName.java       |    37 -
 .../apache/jena/fuseki/server/RequestLog.java   |   148 -
 .../jena/fuseki/server/ServerInitialConfig.java |    40 -
 .../jena/fuseki/server/ServiceMXBean.java       |    32 -
 .../fuseki/server/ShiroEnvironmentLoader.java   |   164 -
 .../apache/jena/fuseki/server/SystemState.java  |    84 -
 .../apache/jena/fuseki/servlets/ActionBase.java |   265 -
 .../fuseki/servlets/ActionErrorException.java   |    32 -
 .../apache/jena/fuseki/servlets/ActionLib.java  |   180 -
 .../apache/jena/fuseki/servlets/ActionREST.java |   161 -
 .../jena/fuseki/servlets/ActionSPARQL.java      |   207 -
 .../fuseki/servlets/ConcurrencyPolicyMRSW.java  |   113 -
 .../jena/fuseki/servlets/FusekiFilter.java      |    87 -
 .../apache/jena/fuseki/servlets/HttpAction.java |   387 -
 .../servlets/HttpServletResponseTracker.java    |   140 -
 .../jena/fuseki/servlets/NullOutputStream.java  |    53 -
 .../apache/jena/fuseki/servlets/REST_Quads.java |    68 -
 .../jena/fuseki/servlets/REST_Quads_R.java      |    99 -
 .../jena/fuseki/servlets/REST_Quads_RW.java     |   136 -
 .../jena/fuseki/servlets/ResponseCallback.java  |    24 -
 .../jena/fuseki/servlets/ResponseModel.java     |   136 -
 .../jena/fuseki/servlets/ResponseOps.java       |    94 -
 .../jena/fuseki/servlets/ResponseResultSet.java |   322 -
 .../apache/jena/fuseki/servlets/SPARQL_GSP.java |   214 -
 .../jena/fuseki/servlets/SPARQL_GSP_R.java      |   123 -
 .../jena/fuseki/servlets/SPARQL_GSP_RW.java     |   208 -
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |   101 -
 .../jena/fuseki/servlets/SPARQL_Query.java      |   393 -
 .../fuseki/servlets/SPARQL_QueryDataset.java    |    60 -
 .../fuseki/servlets/SPARQL_QueryGeneral.java    |   142 -
 .../fuseki/servlets/SPARQL_UberServlet.java     |   358 -
 .../jena/fuseki/servlets/SPARQL_Update.java     |   286 -
 .../jena/fuseki/servlets/SPARQL_Upload.java     |   291 -
 .../jena/fuseki/servlets/ServletBase.java       |    98 -
 .../apache/jena/fuseki/servlets/ServletOps.java |   209 -
 .../org/apache/jena/fuseki/servlets/Upload.java |   164 -
 .../jena/fuseki/servlets/UploadDetails.java     |    86 -
 .../jena/fuseki/validation/DataValidator.java   |   131 -
 .../jena/fuseki/validation/IRIValidator.java    |   168 -
 .../jena/fuseki/validation/QueryValidator.java  |   154 -
 .../jena/fuseki/validation/UpdateValidator.java |    91 -
 .../fuseki/validation/ValidationAction.java     |    95 -
 .../jena/fuseki/validation/ValidationError.java |    24 -
 .../fuseki/validation/ValidatorBaseJson.java    |   201 -
 .../src/main/resources/META-INF/DEPENDENCIES    |    24 -
 .../src/main/resources/META-INF/LICENSE         |   253 -
 jena-fuseki2/src/main/resources/META-INF/NOTICE |    16 -
 .../src/main/resources/log4j.properties         |    50 -
 .../apache/jena/fuseki/fuseki-properties.xml    |     8 -
 .../org/apache/jena/fuseki/server/config.ttl    |    30 -
 .../org/apache/jena/fuseki/server/shiro.ini     |    36 -
 .../jena/fuseki/server/templates/config-mem     |    27 -
 .../jena/fuseki/server/templates/config-service |    23 -
 .../jena/fuseki/server/templates/config-tdb     |    36 -
 .../jena/fuseki/server/templates/config-tdb-dir |    35 -
 .../jena/fuseki/server/templates/config-tdb-mem |    36 -
 jena-fuseki2/src/main/webapp/WEB-INF/web.xml    |   264 -
 jena-fuseki2/src/main/webapp/admin-logs.html    |    72 -
 .../main/webapp/css/bootstrap-select.min.css    |     7 -
 .../src/main/webapp/css/bootstrap-theme.css.map |     1 -
 .../src/main/webapp/css/bootstrap-theme.min.css |     7 -
 .../src/main/webapp/css/bootstrap.css.map       |     1 -
 .../src/main/webapp/css/bootstrap.min.css       |     7 -
 jena-fuseki2/src/main/webapp/css/codemirror.css |   301 -
 jena-fuseki2/src/main/webapp/css/foldgutter.css |    20 -
 .../src/main/webapp/css/font-awesome.min.css    |     4 -
 jena-fuseki2/src/main/webapp/css/fui.css        |   191 -
 .../src/main/webapp/css/jquery.dataTables.css   |   220 -
 .../webapp/css/jquery.fileupload-noscript.css   |    22 -
 .../css/jquery.fileupload-ui-noscript.css       |    17 -
 .../main/webapp/css/jquery.fileupload-ui.css    |    57 -
 .../src/main/webapp/css/jquery.fileupload.css   |    36 -
 jena-fuseki2/src/main/webapp/css/qonsole.css    |   172 -
 jena-fuseki2/src/main/webapp/dataset.html       |   244 -
 jena-fuseki2/src/main/webapp/documentation.html |    80 -
 .../src/main/webapp/fonts/FontAwesome.otf       |   Bin 75188 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.eot   |   Bin 72449 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.svg   |   504 -
 .../main/webapp/fonts/fontawesome-webfont.ttf   |   Bin 141564 -> 0 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff  |   Bin 83760 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.eot      |   Bin 20335 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.svg      |   229 -
 .../fonts/glyphicons-halflings-regular.ttf      |   Bin 41280 -> 0 bytes
 .../fonts/glyphicons-halflings-regular.woff     |   Bin 23320 -> 0 bytes
 .../src/main/webapp/images/back_disabled.png    |   Bin 1361 -> 0 bytes
 .../src/main/webapp/images/back_enabled.png     |   Bin 1379 -> 0 bytes
 .../main/webapp/images/back_enabled_hover.png   |   Bin 1375 -> 0 bytes
 jena-fuseki2/src/main/webapp/images/favicon.ico |   Bin 1085 -> 0 bytes
 .../src/main/webapp/images/forward_disabled.png |   Bin 1363 -> 0 bytes
 .../src/main/webapp/images/forward_enabled.png  |   Bin 1380 -> 0 bytes
 .../webapp/images/forward_enabled_hover.png     |   Bin 1379 -> 0 bytes
 .../webapp/images/jena-logo-notext-small.png    |   Bin 2469 -> 0 bytes
 .../src/main/webapp/images/sort_asc.png         |   Bin 1118 -> 0 bytes
 .../main/webapp/images/sort_asc_disabled.png    |   Bin 1050 -> 0 bytes
 .../src/main/webapp/images/sort_both.png        |   Bin 1136 -> 0 bytes
 .../src/main/webapp/images/sort_desc.png        |   Bin 1127 -> 0 bytes
 .../main/webapp/images/sort_desc_disabled.png   |   Bin 1045 -> 0 bytes
 jena-fuseki2/src/main/webapp/images/wait30.gif  |   Bin 6337 -> 0 bytes
 jena-fuseki2/src/main/webapp/index.html         |   103 -
 .../src/main/webapp/js/app/controllers/.svnkeep |     0
 .../js/app/controllers/dataset-controller.js    |    69 -
 .../js/app/controllers/index-controller.js      |    50 -
 .../js/app/controllers/manage-controller.js     |    39 -
 .../js/app/controllers/query-controller.js      |    72 -
 .../js/app/controllers/upload-controller.js     |    42 -
 .../js/app/controllers/validation-controller.js |    38 -
 jena-fuseki2/src/main/webapp/js/app/fui.js      |    33 -
 .../src/main/webapp/js/app/layouts/.svnkeep     |     0
 .../src/main/webapp/js/app/main.dataset.js      |    31 -
 .../src/main/webapp/js/app/main.index.js        |    24 -
 .../src/main/webapp/js/app/main.manage.js       |    27 -
 .../src/main/webapp/js/app/main.validation.js   |    24 -
 .../main/webapp/js/app/models/dataset-stats.js  |   102 -
 .../src/main/webapp/js/app/models/dataset.js    |   251 -
 .../main/webapp/js/app/models/fuseki-server.js  |   155 -
 .../src/main/webapp/js/app/models/task.js       |   105 -
 .../webapp/js/app/models/validation-options.js  |    85 -
 .../src/main/webapp/js/app/qonsole-config.js    |    26 -
 .../src/main/webapp/js/app/routers/.svnkeep     |     0
 .../main/webapp/js/app/services/ping-service.js |    54 -
 .../js/app/services/validation-service.js       |    98 -
 .../webapp/js/app/templates/dataset-edit.tpl    |    58 -
 .../webapp/js/app/templates/dataset-info.tpl    |    40 -
 .../js/app/templates/dataset-management.tpl     |    53 -
 .../js/app/templates/dataset-selection-list.tpl |    22 -
 .../js/app/templates/dataset-selector.tpl       |    15 -
 .../js/app/templates/dataset-simple-create.tpl  |    79 -
 .../webapp/js/app/templates/dataset-stats.tpl   |    14 -
 .../webapp/js/app/templates/file-upload.tpl     |    46 -
 .../webapp/js/app/templates/uploadable-file.tpl |    23 -
 .../src/main/webapp/js/app/util/page-utils.js   |    33 -
 .../src/main/webapp/js/app/views/.svnkeep       |     0
 .../main/webapp/js/app/views/dataset-edit.js    |   205 -
 .../main/webapp/js/app/views/dataset-info.js    |    76 -
 .../webapp/js/app/views/dataset-management.js   |   160 -
 .../js/app/views/dataset-selection-list.js      |    58 -
 .../webapp/js/app/views/dataset-selector.js     |    84 -
 .../js/app/views/dataset-simple-create.js       |   100 -
 .../main/webapp/js/app/views/dataset-stats.js   |    41 -
 .../js/app/views/datasets-dropdown-list.js      |    43 -
 .../src/main/webapp/js/app/views/file-upload.js |   225 -
 .../webapp/js/app/views/tabbed-view-manager.js  |    63 -
 .../main/webapp/js/app/views/uploadable-file.js |    39 -
 .../webapp/js/app/views/validation-options.js   |    54 -
 .../src/main/webapp/js/common-config.js         |    72 -
 .../main/webapp/js/lib/addon/fold/brace-fold.js |   105 -
 .../webapp/js/lib/addon/fold/comment-fold.js    |    57 -
 .../main/webapp/js/lib/addon/fold/foldcode.js   |   145 -
 .../main/webapp/js/lib/addon/fold/foldgutter.js |   134 -
 .../main/webapp/js/lib/addon/fold/xml-fold.js   |   181 -
 .../src/main/webapp/js/lib/backbone-min.js      |     2 -
 jena-fuseki2/src/main/webapp/js/lib/backbone.js |  1581 --
 .../main/webapp/js/lib/backbone.marionette.js   |  2385 ---
 .../main/webapp/js/lib/bootstrap-select.min.js  |     8 -
 .../src/main/webapp/js/lib/bootstrap.min.js     |     6 -
 .../src/main/webapp/js/lib/html5shiv.js         |     8 -
 .../src/main/webapp/js/lib/jquery-1.10.2.js     |  9789 ---------
 .../src/main/webapp/js/lib/jquery-1.10.2.min.js |     6 -
 .../main/webapp/js/lib/jquery.dataTables.min.js |   155 -
 .../src/main/webapp/js/lib/jquery.fileupload.js |  1426 --
 .../webapp/js/lib/jquery.fileupload.local.js    |  1428 --
 .../src/main/webapp/js/lib/jquery.form.js       |  1278 --
 .../webapp/js/lib/jquery.iframe-transport.js    |   214 -
 .../src/main/webapp/js/lib/jquery.ui.widget.js  |   530 -
 .../main/webapp/js/lib/jquery.xdomainrequest.js |    90 -
 .../src/main/webapp/js/lib/lib/codemirror.js    |  7638 -------
 .../webapp/js/lib/mode/javascript/javascript.js |   683 -
 .../main/webapp/js/lib/mode/sparql/sparql.js    |   160 -
 .../main/webapp/js/lib/mode/turtle/turtle.js    |   160 -
 .../src/main/webapp/js/lib/mode/xml/xml.js      |   384 -
 .../src/main/webapp/js/lib/plugins/text.js      |   386 -
 jena-fuseki2/src/main/webapp/js/lib/qonsole.js  |   582 -
 jena-fuseki2/src/main/webapp/js/lib/refresh.sh  |    21 -
 .../main/webapp/js/lib/remote-sparql-service.js |   180 -
 jena-fuseki2/src/main/webapp/js/lib/require.js  |  2054 --
 .../src/main/webapp/js/lib/require.min.js       |    36 -
 .../src/main/webapp/js/lib/respond.min.js       |     6 -
 .../src/main/webapp/js/lib/sprintf-0.7-beta1.js |   183 -
 .../src/main/webapp/js/lib/underscore.js        |  1276 --
 jena-fuseki2/src/main/webapp/manage.html        |   107 -
 jena-fuseki2/src/main/webapp/services.html      |    75 -
 .../src/main/webapp/test/test-fuseki-config.ttl |    27 -
 jena-fuseki2/src/main/webapp/validate.html      |   146 -
 .../apache/jena/fuseki/AbstractFusekiTest.java  |    47 -
 .../java/org/apache/jena/fuseki/FileSender.java |    87 -
 .../java/org/apache/jena/fuseki/ServerTest.java |   156 -
 .../java/org/apache/jena/fuseki/TS_Fuseki.java  |    58 -
 .../java/org/apache/jena/fuseki/TestAdmin.java  |   538 -
 .../java/org/apache/jena/fuseki/TestAuth.java   |   405 -
 .../org/apache/jena/fuseki/TestDatasetOps.java  |   154 -
 .../org/apache/jena/fuseki/TestFileUpload.java  |   128 -
 .../java/org/apache/jena/fuseki/TestQuery.java  |   115 -
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |    95 -
 .../fuseki/http/TestDatasetAccessorHTTP.java    |   261 -
 .../http/TestDatasetGraphAccessorHTTP.java      |    43 -
 .../org/apache/jena/fuseki/http/TestHttpOp.java |   233 -
 jena-fuseki2/testing/config-ds-1.ttl            |    15 -
 jena-iri/NOTICE                                 |     2 +-
 .../src/main/java/org/apache/jena/iri/IRI.java  |    16 +-
 .../java/org/apache/jena/iri/IRIFactoryI.java   |   152 +-
 .../org/apache/jena/iri/ViolationCodes.java     |     4 +-
 .../apache/jena/iri/impl/AbsIRIFactoryImpl.java |    26 +-
 .../org/apache/jena/iri/impl/AbsIRIImpl.java    |    43 +-
 jena-iri/src/main/resources/META-INF/NOTICE     |     2 +-
 .../test/java/org/apache/jena/iri/TS_IRI.java   |     2 +
 .../java/org/apache/jena/iri/TestExample.java   |     9 +-
 .../org/apache/jena/iri/TestIRIFactory.java     |    73 +
 .../org/apache/jena/iri/TestMoreExamples.java   |     7 +-
 .../org/apache/jena/iri/test/Additional.java    |    61 -
 .../org/apache/jena/iri/test/MoreTests.java     |    98 -
 .../org/apache/jena/iri/test/TestCreator.java   |   254 -
 .../apache/jena/iri/test/TestErrorMessages.java |   144 -
 .../org/apache/jena/iri/test/TestExample.java   |   279 -
 .../org/apache/jena/iri/test/TestMEIri.java     |    39 -
 .../apache/jena/iri/test/TestMERelativize.java  |    50 -
 .../org/apache/jena/iri/test/TestMEResolve.java |    42 -
 .../org/apache/jena/iri/test/TestMEResult.java  |    46 -
 .../apache/jena/iri/test/TestMoreExamples.java  |   264 -
 .../org/apache/jena/iri/test/TestPackage.java   |    36 -
 .../test/resources/org/apache/jena/iri/test.xml | 18422 ++++++++---------
 .../resources/org/apache/jena/iri/test/test.xml |  9217 ---------
 .../resources/org/apache/jena/iri/test/uris.xml |   463 -
 jena-jdbc/NOTICE                                |     2 +-
 jena-jdbc/jena-jdbc-core/NOTICE                 |     2 +-
 jena-jdbc/jena-jdbc-core/pom.xml                |     2 +-
 .../statements/AbstractJenaStatementTests.java  |    74 +-
 jena-jdbc/jena-jdbc-driver-bundle/NOTICE        |     2 +-
 jena-jdbc/jena-jdbc-driver-bundle/pom.xml       |     2 +-
 jena-jdbc/jena-jdbc-driver-mem/NOTICE           |     2 +-
 jena-jdbc/jena-jdbc-driver-remote/NOTICE        |     2 +-
 jena-jdbc/jena-jdbc-driver-tdb/NOTICE           |     2 +-
 jena-jdbc/pom.xml                               |    12 +-
 jena-maven-tools/pom.xml                        |     2 +-
 jena-parent/NOTICE                              |     2 +-
 jena-parent/pom.xml                             |   146 +-
 jena-sdb/NOTICE                                 |     2 +-
 jena-sdb/dist/NOTICE                            |     2 +-
 jena-sdb/pom.xml                                |     8 +-
 .../hp/hpl/jena/sdb/graph/EventManagerSDB.java  |    19 +-
 .../com/hp/hpl/jena/sdb/graph/GraphSDB.java     |     7 +-
 .../hp/hpl/jena/sdb/layout2/NodeLayout2.java    |     6 +-
 .../com/hp/hpl/jena/sdb/layout2/SQLBridge2.java |    14 +-
 .../hpl/jena/sdb/layout2/TupleLoaderBase.java   |     3 +-
 .../com/hp/hpl/jena/sdb/layout2/ValueType.java  |     5 +
 .../jena/sdb/layout2/hash/StoreBaseHash.java    |     4 +-
 .../sdb/layout2/hash/TupleLoaderOneHash.java    |     4 +-
 .../jena/sdb/layout2/index/StoreBaseIndex.java  |     4 +-
 jena-sdb/src/main/resources/META-INF/NOTICE     |     2 +-
 jena-security/NOTICE                            |     2 +-
 jena-security/pom.xml                           |    84 +-
 .../jena/security/example/ExampleEvaluator.java |   147 +
 .../jena/security/example/SecurityExample.java  |    93 +
 .../security/example/ShiroExampleEvaluator.java |   235 +
 .../jena/security/example/ExampleEvaluator.java |   147 -
 .../jena/security/example/SecurityExample.java  |    93 -
 .../apache/jena/security/example/example.ttl    |    49 -
 .../apache/jena/security/example/example.ttl    |    49 +
 .../jena/security/example/fuseki/config.ttl     |    98 +
 .../jena/security/example/fuseki/shiro.ini      |    47 +
 .../jena/security/AssemblerConstants.java       |    62 +
 .../apache/jena/security/SecuredAssembler.java  |   157 +-
 .../apache/jena/security/SecurityEvaluator.java |   517 +-
 .../security/SecurityEvaluatorAssembler.java    |   186 +
 .../security/graph/SecuredCapabilities.java     |    18 +-
 .../jena/security/graph/SecuredGraph.java       |    38 +-
 .../graph/SecuredGraphEventManager.java         |   533 +-
 .../security/graph/impl/SecuredGraphImpl.java   |    64 +-
 .../security/impl/CachedSecurityEvaluator.java  |   120 +-
 .../apache/jena/security/impl/ItemHolder.java   |     2 +-
 .../jena/security/impl/SecuredItemImpl.java     |    22 +-
 .../jena/security/impl/SecuredItemInvoker.java  |     5 +-
 .../security/model/impl/SecuredModelImpl.java   |     5 +-
 .../security/model/impl/SecuredRDFListImpl.java |     2 +-
 .../security/model/impl/SecuredRSIterator.java  |     2 +-
 .../jena/security/query/SecuredQueryEngine.java |    14 +-
 .../security/query/rewriter/OpRewriter.java     |    39 +-
 .../query/rewriter/SecuredFunction.java         |     3 +-
 .../security/utils/PermStatementFilter.java     |     9 +-
 .../jena/security/utils/PermTripleFilter.java   |     9 +-
 .../jena/security/utils/RDFListSecFilter.java   |     9 +-
 .../jena/security/MockSecurityEvaluator.java    |    16 +-
 .../security/ModelBasedSecurityEvaluator.java   |    76 +
 .../jena/security/SecuredAssemblerTest.java     |    28 +-
 .../jena/security/StaticSecurityEvaluator.java  |    78 +
 .../graph/CachedSecurityEvaluatorTest.java      |    45 +
 .../graph/SecuredTDBGraphContractTests.java     |    52 +
 .../security/graph/BulkUpdateHandlerTest.java   |    57 +-
 .../graph/CrossIDGraphEventManagerTest.java     |    78 +
 .../security/graph/GraphEventManagerTest.java   |   127 +-
 .../security/graph/RecordingGraphListener.java  |   124 +
 .../graph/SecuredPrefixMappingTest.java         |    68 +-
 .../jena/security/model/SecuredLiteralTest.java |    47 +-
 .../security/model/SecuredModelDetailTest.java  |    20 +-
 .../apache/jena/security/query/DataSetTest.java |   250 +
 .../jena/security/query/QueryEngineTest.java    |   161 +-
 .../jena/security/SecuredAssemblerTest.ttl      |    31 +
 jena-spatial/NOTICE                             |     2 +-
 jena-spatial/pom.xml                            |     7 +-
 .../jena/query/spatial/SpatialIndexContext.java |     9 +-
 .../jena/query/spatial/SpatialIndexLucene.java  |    26 +-
 .../jena/query/spatial/SpatialValueUtil.java    |    32 +-
 .../assembler/SpatialIndexLuceneAssembler.java  |     1 +
 .../pfunction/DirectionWithPointPFBase.java     |     4 +-
 .../SpatialOperationWithBoxPFBase.java          |     8 +-
 .../SpatialOperationWithCircleBase.java         |     6 +-
 jena-spatial/src/main/resources/META-INF/NOTICE |     5 +
 .../AbstractTestDatasetWithSpatialIndex.java    |     9 +-
 .../jena/query/spatial/SpatialSearchUtil.java   |     1 +
 jena-tdb/NOTICE                                 |     2 +-
 jena-tdb/ReleaseNotes.txt                       |     4 +
 jena-tdb/pom.xml                                |     8 +-
 .../hp/hpl/jena/tdb/base/file/BlockAccess.java  |     2 +-
 .../com/hp/hpl/jena/tdb/base/file/Location.java |     5 +-
 .../jena/tdb/base/objectfile/ObjectFile.java    |     8 +-
 .../tdb/base/objectfile/ObjectFileStorage.java  |     5 +-
 .../com/hp/hpl/jena/tdb/index/SetupIndex.java   |   173 +
 .../java/com/hp/hpl/jena/tdb/lib/NodeLib.java   |    13 +-
 .../java/com/hp/hpl/jena/tdb/setup/Build.java   |    24 +-
 .../hpl/jena/tdb/setup/DatasetBuilderStd.java   |     4 +-
 .../hpl/jena/tdb/setup/StoreParamsBuilder.java  |     2 +-
 .../hp/hpl/jena/tdb/setup/StoreParamsCodec.java |     2 +-
 .../hp/hpl/jena/tdb/solver/StageMatchTuple.java |    11 +-
 .../hp/hpl/jena/tdb/store/DatasetGraphTDB.java  |    13 +-
 .../com/hp/hpl/jena/tdb/store/GraphTDB.java     |     6 +-
 .../java/com/hp/hpl/jena/tdb/store/Hash.java    |     2 +-
 .../java/com/hp/hpl/jena/tdb/store/NodeId.java  |    51 +-
 .../com/hp/hpl/jena/tdb/store/NodeType.java     |     1 +
 .../hpl/jena/tdb/store/nodetable/NodecSSE.java  |    17 +-
 .../java/com/hp/hpl/jena/tdb/sys/FileRef.java   |     6 +-
 .../java/com/hp/hpl/jena/tdb/sys/SetupTDB.java  |   162 +-
 jena-tdb/src/main/java/tdb/CmdRewriteIndex.java |     4 +-
 jena-tdb/src/main/resources/META-INF/NOTICE     |     2 +-
 .../jena/tdb/base/file/TestLocationLock.java    |    47 -
 .../hp/hpl/jena/tdb/extra/T_TransSystem.java    |     2 +-
 .../tdb/extra/T_TransSystemMultiDatasets.java   |     2 +-
 .../jena/tdb/index/AbstractTestTupleIndex.java  |   271 -
 .../index/bplustree/TestBPlusTreeRewriter.java  |     4 +-
 .../com/hp/hpl/jena/tdb/store/TS_Store.java     |     1 +
 .../store/TestLocationLockStoreConnection.java  |    98 +
 .../com/hp/hpl/jena/tdb/store/TestNodeId.java   |    16 +-
 .../store/nodetable/AbstractTestNodeTable.java  |     2 +-
 .../tupletable/AbstractTestTupleIndex.java      |   271 +
 .../store/tupletable/TestTupleIndexRecord.java  |     1 -
 jena-tdb/tdb-default.cfg                        |    20 +
 jena-text/NOTICE                                |     2 +-
 jena-text/ReleaseNotes.txt                      |     8 +
 jena-text/pom.xml                               |     4 +-
 jena-text/src/main/java/jena/textindexer.java   |     4 +-
 .../jena/query/text/DatasetGraphText.java       |   136 +-
 .../jena/query/text/TextDatasetFactory.java     |    29 +-
 .../query/text/TextDocProducerEntities.java     |    13 +-
 .../jena/query/text/TextDocProducerTriples.java |    22 +-
 .../org/apache/jena/query/text/TextIndex.java   |    20 +-
 .../apache/jena/query/text/TextIndexLucene.java |   123 +-
 .../apache/jena/query/text/TextIndexSolr.java   |    47 +-
 .../text/assembler/TextDatasetAssembler.java    |     2 +-
 .../assembler/TextIndexLuceneAssembler.java     |    14 +-
 jena-text/src/main/resources/LICENSE            |   202 -
 jena-text/src/main/resources/META-INF/LICENSE   |   202 +
 jena-text/src/main/resources/META-INF/NOTICE    |     2 +-
 .../AbstractTestDatasetWithGraphTextIndex.java  |    24 +-
 ...ractTestDatasetWithLuceneGraphTextIndex.java |    22 +-
 .../AbstractTestDatasetWithLuceneTextIndex.java |   103 -
 .../text/AbstractTestDatasetWithTextIndex.java  |     6 +-
 .../AbstractTestDatasetWithTextIndexBase.java   |    10 +-
 .../org/apache/jena/query/text/TS_Text.java     |     2 +-
 .../TestDatasetWithEmbeddedSolrTextIndex.java   |    15 +-
 .../text/TestDatasetWithKeywordAnalyzer.java    |    53 +-
 ...TestDatasetWithLowerCaseKeywordAnalyzer.java |    19 +-
 .../TestDatasetWithLuceneGraphTextIndex.java    |     5 +-
 .../text/TestDatasetWithLuceneTextIndex.java    |   100 +-
 .../text/TestDatasetWithSimpleAnalyzer.java     |    45 +-
 .../text/TestDatasetWithStandardAnalyzer.java   |    45 +-
 .../text/TestLuceneWithMultipleThreads.java     |   252 +
 ...BeforeWriteOnDatasetWithLuceneTextIndex.java |    49 -
 .../assembler/AbstractTestTextAssembler.java    |    82 +-
 .../assembler/TestTextDatasetAssembler.java     |     4 +-
 .../assembler/TestTextIndexLuceneAssembler.java |    83 +-
 pom.xml                                         |    23 +-
 1508 files changed, 114948 insertions(+), 92217 deletions(-)
----------------------------------------------------------------------



[13/26] jena git commit: Improve assignment inlining (JENA-780)

Posted by rv...@apache.org.
Improve assignment inlining (JENA-780)

Fixes a bug in how assignments were eliminated/inlined from usages in
extend and generally improves how we cope with extend such that we can
inline expressions where they are defined in the same extend as they are
used.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/985b995b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/985b995b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/985b995b

Branch: refs/heads/jena2
Commit: 985b995be1f21c7ee0627a00326866b27babfd03
Parents: bdcf8a6
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 15:29:22 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 15:29:22 2015 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java |  73 ++++++---
 .../TestTransformEliminateAssignments.java      | 160 ++++++++++++++++---
 2 files changed, 193 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/985b995b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 91dc435..4d59fc3 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -120,17 +120,19 @@ public class TransformEliminateAssignments extends TransformCopy {
     }
 
     protected boolean canInline(Expr e) {
+        if (e == null)
+            return false;
         return ExprLib.isStable(e);
     }
 
     protected boolean shouldInline(Expr e) {
+        if (e == null)
+            return false;
+
         // Inline everything when being aggressive
         if (this.aggressive)
             return true;
 
-        if (e == null)
-            return false;
-
         // If not being aggressive only inline if the expression is a constant
         return e.isConstant() || e instanceof NodeValue;
     }
@@ -214,13 +216,47 @@ public class TransformEliminateAssignments extends TransformCopy {
 
         // See if there are any assignments we can eliminate entirely i.e. those
         // where the assigned value is never used
-        VarExprList assignments = processUnused(opExtend.getVarExprList());
-        if (assignments == null)
-            return super.transform(opExtend, subOp);
+        VarExprList unusedAssignments = processUnused(opExtend.getVarExprList());
+        VarExprList newAssignments = new VarExprList();
+        for (Var assignVar : opExtend.getVarExprList().getVars()) {
+            // If unused eliminate
+            if (unusedAssignments != null && unusedAssignments.contains(assignVar))
+                continue;
+
+            Expr currExpr = opExtend.getVarExprList().getExpr(assignVar);
+
+            // See what vars are used in the current expression
+            Collection<Var> vars = new ArrayList<>();
+            ExprVars.varsMentioned(vars, currExpr);
+
+            for (Var var : vars) {
+                // Usage count will be 2 if we can eliminate the assignment
+                // First usage is when it is introduced by the assignment and
+                // the second is when it is used now used in another assignment
+                Expr e = getAssignExpr(var);
+                if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+                    // Can go back and eliminate that assignment
+                    subOp = eliminateAssignment(subOp, var);
+                    // Replace the variable usage with the expression within
+                    // expression
+                    currExpr = ExprTransformer.transform(new ExprTransformSubstitute(var, e), currExpr);
+                    this.tracker.getAssignments().remove(var);
+
+                    // If the assignment to be eliminated was introduced by the
+                    // extend we are processing need to remove it from the
+                    // VarExprList we are currently building
+                    if (newAssignments.contains(var) && newAssignments.getExpr(var).equals(e)) {
+                        newAssignments.getVars().remove(var);
+                        newAssignments.getExprs().remove(var);
+                    }
+                }
+            }
+            newAssignments.add(assignVar, currExpr);
+        }
 
-        // Can eliminate some assignments entirely
-        if (assignments.size() > 0) {
-            return OpExtend.extend(subOp, assignments);
+        // May be able to eliminate the extend entirely in some cases
+        if (newAssignments.size() > 0) {
+            return OpExtend.extend(subOp, newAssignments);
         } else {
             return subOp;
         }
@@ -230,20 +266,17 @@ public class TransformEliminateAssignments extends TransformCopy {
         if (CollectionUtils.disjoint(assignments.getVars(), this.tracker.getAssignments().keySet()))
             return null;
 
-        VarExprList modified = new VarExprList();
+        VarExprList singleUse = new VarExprList();
         for (Var var : assignments.getVars()) {
-            // If an assignment is used more than once then it must be preserved
-            // for now
-            if (this.tracker.getUsageCount(var) > 1)
-                modified.add(var, assignments.getExpr(var));
+            if (this.tracker.getUsageCount(var) == 1)
+                singleUse.add(var, assignments.getExpr(var));
         }
-
-        // If all assignments are used more than once then there are no changes
-        // and we return null
-        if (modified.size() == assignments.size())
+        
+        // If nothing is single use
+        if (singleUse.size() == 0)
             return null;
 
-        return modified;
+        return singleUse;
     }
 
     @Override
@@ -262,7 +295,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         for (Var var : vars) {
             // Usage count will be 2 if we can eliminate the assignment
             // First usage is when it is introduced by the assignment and the
-            // second is when it is used now in this filter
+            // second is when it is used now in this order expression
             Expr e = getAssignExpr(var);
             if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
                 // Can go back and eliminate that assignment

http://git-wip-us.apache.org/repos/asf/jena/blob/985b995b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index 163ce8c..cd0904b 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -56,11 +56,48 @@ public class TestTransformEliminateAssignments {
     }
 
     private void testNoChange(String... input) {
-        test(StrUtils.strjoinNL(input), (String[]) null);
+        testNoChange(false, input);
+    }
+
+    private void testNoChangeAggressive(String... input) {
+        testNoChange(true, input);
+    }
+
+    private void testNoChange(boolean aggressive, String... input) {
+        test(StrUtils.strjoinNL(input), aggressive, (String[]) null);
+    }
+
+    @Test
+    public void unused_01() {
+        // Assignments never used can be eliminated
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend (?x true)",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void unused_02() {
+        // Assignments never used can be eliminated
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend ((?x true) (?y false))",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (extend (?y false)",
+             "    (table unit)))");
+        //@formatter:on
     }
 
     @Test
-    public void single_use_extend_01() {
+    public void filter_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // However we must be inside a projection as otherwise the assigned
@@ -77,8 +114,9 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_02() {
+    public void filter_02() {
         // Assignment for ?y can be removed because it is never used
+        // Assignment for ?x can be in-lined
         // However we must be inside a projection as otherwise the assigned
         // variable would be visible and we couldn't eliminate the assignment
         //@formatter:off
@@ -93,7 +131,23 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_03() {
+    public void extend_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (extend ((?x true) (?y ?x))",
+                                "    (table unit)))"),
+             "(project (?y)",
+             "  (extend (?y true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // However we must be inside a projection as otherwise the assigned
@@ -110,7 +164,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_complex_01() {
+    public void orderby_02() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // BUT we won't do this by default for complex expressions where they
@@ -124,7 +178,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_complex_02() {
+    public void orderby_03() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // BUT we won't do this by default for complex expressions where they
@@ -141,9 +195,9 @@ public class TestTransformEliminateAssignments {
              "    (table unit)))");
         //@formatter:on
     }
-    
+
     @Test
-    public void single_use_extend_unstable_01() {
+    public void filter_unstable_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // EXCEPT if the expression is unstable in which case we leave it alone
@@ -154,9 +208,9 @@ public class TestTransformEliminateAssignments {
                                         "      (table unit))))"));
         //@formatter:on
     }
-    
+
     @Test
-    public void single_use_extend_unstable_02() {
+    public void filter_unstable_02() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // EXCEPT if the expression is unstable in which case we leave it alone
@@ -167,9 +221,9 @@ public class TestTransformEliminateAssignments {
                                         "      (table unit))))"));
         //@formatter:on
     }
-    
+
     @Test
-    public void single_use_extend_unstable_03() {
+    public void filter_unstable_03() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // EXCEPT if the expression is unstable in which case we leave it alone
@@ -180,9 +234,9 @@ public class TestTransformEliminateAssignments {
                                         "      (table unit))))"));
         //@formatter:on
     }
-    
+
     @Test
-    public void single_use_extend_unstable_04() {
+    public void filter_unstable_04() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // EXCEPT if the expression is unstable in which case we leave it alone
@@ -195,7 +249,59 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_outside_projection_01() {
+    public void orderby_unstable_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (rand))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (uuid))",
+                                            "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (struuid))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void orderby_unstable_04() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChangeAggressive(StrUtils.strjoinNL("(project (?y)",
+                                                  "  (order (?x)",
+                                                  "    (extend (?x (bnode))",
+                                                  "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void ineligible_01() {
         // Cannot eliminate as there is no projection so the assigned variable
         // is visible even though in the algebra given it is used only once
         //@formatter:off
@@ -206,7 +312,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_outside_projection_02() {
+    public void ineligible_02() {
         // Cannot eliminate as there is no projection so the assigned variable
         // is visible even though in the algebra given it is used only once
         //@formatter:off
@@ -217,7 +323,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void multi_use_extend_01() {
+    public void ineligible_03() {
         // As the assigned variable is used multiple times we leave the
         // assignment alone
         //@formatter:off
@@ -229,7 +335,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void multi_use_extend_02() {
+    public void ineligible_04() {
         // Because the value of the assignment is used in multiple places we
         // leave the assignment alone
         //@formatter:off
@@ -243,7 +349,21 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void scoped_use_extend_01() {
+    public void scope_01() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // In this test the outer ?x is technically different from the inner ?x
+        // anyway because of the projection
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                        "  (project (?x ?y)",
+                                        "    (extend (?x true)",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void scope_02() {
         // If the assignment is out of scope by the time it is used in the outer
         // scope then we can't substitute it out there
         // However if the scoping means the value is never used we can instead
@@ -260,7 +380,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void scoped_use_extend_02() {
+    public void scope_03() {
         // If the assignment is out of scope by the time it is used in the outer
         // scope then we can't substitute it out there
         // However in this case we can substitute it in the inner scope


[02/26] jena git commit: Initial work on elminating assignments (JENA-780)

Posted by rv...@apache.org.
Initial work on elminating assignments (JENA-780)

This is an initial first pass at a new optimization which aims to
eliminate single use assignments where possible.  Currently this is not
entirely working and will break some queries (those not involving an
explicit projection)


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/308810f2
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/308810f2
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/308810f2

Branch: refs/heads/master
Commit: 308810f273203591143ebd9c00d39077d309fa7d
Parents: 913b225
Author: Rob Vesse <rv...@apache.org>
Authored: Thu Sep 25 15:34:37 2014 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Thu Sep 25 15:35:31 2014 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 219 +++++++++++++++++++
 .../optimize/TransformRemoveAssignment.java     |  98 +++++++++
 .../algebra/optimize/VariableUsagePopper.java   |  39 ++++
 .../algebra/optimize/VariableUsagePusher.java   |  41 ++++
 .../algebra/optimize/VariableUsageTracker.java  |  74 +++++++
 .../algebra/optimize/VariableUsageVisitor.java  | 186 ++++++++++++++++
 .../algebra/optimize/TS_Optimization.java       |   1 +
 .../TestTransformEliminateAssignments.java      | 171 +++++++++++++++
 8 files changed, 829 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
new file mode 100644
index 0000000..49f8f1c
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -0,0 +1,219 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.jena.atlas.lib.CollectionUtils;
+import com.hp.hpl.jena.sparql.algebra.Op;
+import com.hp.hpl.jena.sparql.algebra.OpVisitor;
+import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
+import com.hp.hpl.jena.sparql.algebra.Transform;
+import com.hp.hpl.jena.sparql.algebra.TransformCopy;
+import com.hp.hpl.jena.sparql.algebra.Transformer;
+import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
+import com.hp.hpl.jena.sparql.algebra.op.OpExt;
+import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
+import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
+import com.hp.hpl.jena.sparql.algebra.op.OpGroup;
+import com.hp.hpl.jena.sparql.algebra.op.OpOrder;
+import com.hp.hpl.jena.sparql.algebra.op.OpProject;
+import com.hp.hpl.jena.sparql.algebra.op.OpTopN;
+import com.hp.hpl.jena.sparql.core.Var;
+import com.hp.hpl.jena.sparql.core.VarExprList;
+import com.hp.hpl.jena.sparql.expr.Expr;
+import com.hp.hpl.jena.sparql.expr.ExprList;
+import com.hp.hpl.jena.sparql.expr.ExprTransformSubstitute;
+import com.hp.hpl.jena.sparql.expr.ExprTransformer;
+import com.hp.hpl.jena.sparql.expr.ExprVars;
+
+/**
+ * A transform that tries to remove unecessary assignments
+ * <p>
+ * There are two classes of assignments that we can try and remove:
+ * </p>
+ * <ol>
+ * <li>Assignments where the assigned variable is used only once in a subsequent
+ * assignment</li>
+ * <li>Assignments where the assigned value is never used elsewhere</li>
+ * </ol>
+ * 
+ * @author rvesse
+ * 
+ */
+public class TransformEliminateAssignments extends TransformCopy {
+
+    public static Op eliminate(Op op) {
+        AssignmentTracker tracker = new AssignmentTracker();
+        VariableUsagePusher pusher = new VariableUsagePusher(tracker);
+        AssignmentPopper popper = new AssignmentPopper(tracker);
+        Transform transform = new TransformEliminateAssignments(tracker, pusher, popper);
+
+        return Transformer.transform(transform, op, pusher, popper);
+    }
+
+    private OpVisitor before, after;
+    private AssignmentTracker tracker;
+
+    private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after) {
+        this.tracker = tracker;
+        this.before = before;
+    }
+
+    @Override
+    public Op transform(OpExt opExt) {
+        return opExt.apply(this, this.before, this.after);
+    }
+
+    @Override
+    public Op transform(OpFilter opFilter, Op subOp) {
+        // See what vars are used in the filter
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opFilter.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+
+        // Are any of these vars single usage?
+        ExprList exprs = opFilter.getExprs();
+        boolean modified = false;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this filter
+            if (this.tracker.getUsageCount(var) == 2 && this.tracker.getAssignments().containsKey(var)) {
+                // Can go back and eliminate that assignment
+                subOp = Transformer.transform(
+                        new TransformRemoveAssignment(var, this.tracker.getAssignments().get(var)), subOp);
+                // Replace the variable usage with the expression
+                exprs = ExprTransformer.transform(
+                        new ExprTransformSubstitute(var, this.tracker.getAssignments().get(var)), exprs);
+                this.tracker.getAssignments().remove(var);
+                modified = true;
+            }
+        }
+
+        // Create a new filter if we've substituted any expressions
+        if (modified) {
+            return OpFilter.filter(exprs, subOp);
+        }
+
+        return super.transform(opFilter, subOp);
+    }
+
+    @Override
+    public Op transform(OpAssign opAssign, Op subOp) {
+        this.tracker.putAssignments(opAssign.getVarExprList());
+        // Note that for assign we don't eliminate instances where its value is
+        // never used because assign has different semantics to extend that
+        // means in such a case it acts more like a filter
+        return super.transform(opAssign, subOp);
+    }
+
+    @Override
+    public Op transform(OpExtend opExtend, Op subOp) {
+        this.tracker.putAssignments(opExtend.getVarExprList());
+
+        // See if there are any assignments we can eliminate entirely i.e. those
+        // where the assigned value is never used
+        VarExprList assignments = processUnused(opExtend.getVarExprList());
+        if (assignments == null)
+            return super.transform(opExtend, subOp);
+
+        // Can eliminate some assignments entirely
+        if (assignments.size() > 0) {
+            return OpExtend.extend(subOp, assignments);
+        } else {
+            return subOp;
+        }
+    }
+
+    private VarExprList processUnused(VarExprList assignments) {
+        if (CollectionUtils.disjoint(assignments.getVars(), this.tracker.getAssignments().keySet()))
+            return null;
+
+        VarExprList modified = new VarExprList();
+        for (Var var : assignments.getVars()) {
+            if (this.tracker.getUsageCount(var) > 1)
+                modified.add(var, assignments.getExpr(var));
+        }
+
+        if (modified.size() == assignments.size())
+            return null;
+        return modified;
+    }
+
+    @Override
+    public Op transform(OpOrder opOrder, Op subOp) {
+        // TODO Auto-generated method stub
+        return super.transform(opOrder, subOp);
+    }
+
+    @Override
+    public Op transform(OpTopN opTop, Op subOp) {
+        // TODO Auto-generated method stub
+        return super.transform(opTop, subOp);
+    }
+
+    @Override
+    public Op transform(OpGroup opGroup, Op subOp) {
+        // TODO Auto-generated method stub
+        return super.transform(opGroup, subOp);
+    }
+
+    private static class AssignmentTracker extends VariableUsageTracker {
+
+        private Map<Var, Expr> assignments = new HashMap<>();
+
+        public Map<Var, Expr> getAssignments() {
+            return this.assignments;
+        }
+
+        public void putAssignments(VarExprList assignments) {
+            for (Var var : assignments.getVars()) {
+                int i = getUsageCount(var);
+                if (i <= 2) {
+                    this.assignments.put(var, assignments.getExpr(var));
+                } else {
+                    this.assignments.remove(var);
+                }
+            }
+        }
+
+        @Override
+        public void increment(String var) {
+            super.increment(var);
+
+            int i = getUsageCount(var);
+            if (i > 2) {
+                this.assignments.remove(var);
+            }
+        }
+
+    }
+
+    private static class AssignmentPopper extends OpVisitorBase {
+
+        private AssignmentTracker tracker;
+
+        public AssignmentPopper(AssignmentTracker tracker) {
+            this.tracker = tracker;
+        }
+
+        @Override
+        public void visit(OpProject opProject) {
+            // Any assignments that are not projected should be discarded at
+            // this
+            // point
+            Iterator<Var> vars = tracker.getAssignments().keySet().iterator();
+            while (vars.hasNext()) {
+                Var var = vars.next();
+                if (!opProject.getVars().contains(var))
+                    vars.remove();
+            }
+            tracker.pop();
+        }
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
new file mode 100644
index 0000000..dba9271
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
@@ -0,0 +1,98 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import com.hp.hpl.jena.sparql.algebra.Op;
+import com.hp.hpl.jena.sparql.algebra.TransformCopy;
+import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
+import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
+import com.hp.hpl.jena.sparql.algebra.op.OpExtendAssign;
+import com.hp.hpl.jena.sparql.core.Var;
+import com.hp.hpl.jena.sparql.core.VarExprList;
+import com.hp.hpl.jena.sparql.expr.Expr;
+
+/**
+ * A transform capable of removing assignments from the algebra tree
+ * 
+ */
+public class TransformRemoveAssignment extends TransformCopy {
+
+    private Var var;
+    private Expr expr;
+    private boolean topmostOnly = true;
+
+    public TransformRemoveAssignment(Var var, Expr expr, boolean topmostOnly) {
+        this.var = var;
+        this.expr = expr;
+        this.topmostOnly = topmostOnly;
+    }
+
+    public TransformRemoveAssignment(Var var, Expr expr) {
+        this(var, expr, true);
+    }
+
+    @Override
+    public Op transform(OpAssign opAssign, Op subOp) {
+        VarExprList assignments = processAssignments(opAssign);
+        if (assignments == null)
+            return super.transform(opAssign, subOp);
+
+        // Rewrite appropriately
+        if (this.topmostOnly) {
+            // If topmost only ignore any transformations lower down the tree
+            // hence call getSubOp() rather than using the provided subOp
+            if (assignments.size() > 0) {
+                return OpAssign.assign(opAssign.getSubOp(), assignments);
+            } else {
+                return opAssign.getSubOp();
+            }
+        } else {
+            // Otherwise preserve any transformations from lower down the tree
+            if (assignments.size() > 0) {
+                return OpAssign.assign(subOp, assignments);
+            } else {
+                return subOp;
+            }
+        }
+    }
+
+    private VarExprList processAssignments(OpExtendAssign opAssign) {
+        VarExprList orig = opAssign.getVarExprList();
+        if (!orig.contains(this.var))
+            return null;
+        if (!orig.getExpr(this.var).equals(this.expr))
+            return null;
+
+        VarExprList modified = new VarExprList();
+        for (Var v : orig.getVars()) {
+            if (!v.equals(this.var)) {
+                modified.add(v, orig.getExpr(v));
+            }
+        }
+        return modified;
+    }
+
+    @Override
+    public Op transform(OpExtend opExtend, Op subOp) {
+        VarExprList assignments = processAssignments(opExtend);
+        if (assignments == null)
+            return super.transform(opExtend, subOp);
+
+        // Rewrite appropriately
+        if (this.topmostOnly) {
+            // If topmost only ignore any transformations lower down the tree
+            // hence call getSubOp() rather than using the provided subOp
+            if (assignments.size() > 0) {
+                return OpExtend.extend(opExtend.getSubOp(), assignments);
+            } else {
+                return opExtend.getSubOp();
+            }
+        } else {
+            // Otherwise preserve any transformations from lower down the tree
+            if (assignments.size() > 0) {
+                return OpExtend.extend(subOp, assignments);
+            } else {
+                return subOp;
+            }
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
new file mode 100644
index 0000000..e73bfee
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
@@ -0,0 +1,39 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+
+import com.hp.hpl.jena.sparql.algebra.op.OpProject;
+import com.hp.hpl.jena.sparql.core.Var;
+
+/**
+ * An after visitor for tracking variable usage
+ * 
+ */
+public class VariableUsagePopper extends VariableUsageVisitor {
+
+    public VariableUsagePopper(VariableUsageTracker tracker) {
+        super(tracker);
+    }
+
+    @Override
+    protected void action(Collection<Var> vars) {
+        this.tracker.decrement(vars);
+    }
+
+    @Override
+    protected void action(Var var) {
+        this.tracker.decrement(var);
+    }
+
+    @Override
+    protected void action(String var) {
+        this.tracker.decrement(var);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        super.visit(opProject);
+        this.tracker.pop();
+        super.visit(opProject);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
new file mode 100644
index 0000000..51a04fb
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
@@ -0,0 +1,41 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+
+import com.hp.hpl.jena.sparql.algebra.op.OpProject;
+import com.hp.hpl.jena.sparql.core.Var;
+
+/**
+ * A before visitor for tracking variable usage
+ * 
+ */
+public class VariableUsagePusher extends VariableUsageVisitor {
+
+    public VariableUsagePusher(VariableUsageTracker tracker) {
+        super(tracker);
+    }
+
+    @Override
+    protected void action(Collection<Var> vars) {
+        this.tracker.increment(vars);
+    }
+
+    @Override
+    protected void action(Var var) {
+        this.tracker.increment(var);
+    }
+
+    @Override
+    protected void action(String var) {
+        this.tracker.increment(var);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        super.visit(opProject);
+        this.tracker.push();
+        super.visit(opProject);
+    }
+
+    
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
new file mode 100644
index 0000000..f63e41e
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
@@ -0,0 +1,74 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Stack;
+
+import com.hp.hpl.jena.sparql.core.Var;
+
+/**
+ * Tracker for variable usage
+ * 
+ */
+public class VariableUsageTracker {
+
+    private Stack<Map<String, Integer>> stack = new Stack<>();
+    private Map<String, Integer> variables = new HashMap<>();
+
+    public void push() {
+        this.stack.push(this.variables);
+        this.variables = new HashMap<>();
+    }
+
+    public void pop() {
+        if (this.stack.size() == 0)
+            throw new IllegalStateException("Stack is empty");
+        this.variables = this.stack.pop();
+    }
+
+    public void increment(Collection<Var> vars) {
+        for (Var var : vars) {
+            increment(var);
+        }
+    }
+
+    public void increment(String var) {
+        if (!variables.containsKey(var)) {
+            variables.put(var, 1);
+        } else {
+            variables.put(var, variables.get(var) + 1);
+        }
+    }
+
+    public void increment(Var var) {
+        increment(var.getName());
+    }
+
+    public void decrement(Collection<Var> vars) {
+        for (Var var : vars) {
+            decrement(var);
+        }
+    }
+
+    public void decrement(String var) {
+        if (variables.containsKey(var)) {
+            variables.put(var, variables.get(var) - 1);
+            if (variables.get(var) <= 0)
+                variables.remove(var);
+        }
+    }
+
+    public void decrement(Var var) {
+        decrement(var.getName());
+    }
+
+    public int getUsageCount(String var) {
+        Integer i = variables.get(var);
+        return i != null ? i.intValue() : 0;
+    }
+
+    public int getUsageCount(Var var) {
+        return getUsageCount(var.getName());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
new file mode 100644
index 0000000..9fda1c4
--- /dev/null
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
@@ -0,0 +1,186 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.query.SortCondition;
+import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
+import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
+import com.hp.hpl.jena.sparql.algebra.op.OpBGP;
+import com.hp.hpl.jena.sparql.algebra.op.OpDatasetNames;
+import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
+import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
+import com.hp.hpl.jena.sparql.algebra.op.OpGraph;
+import com.hp.hpl.jena.sparql.algebra.op.OpGroup;
+import com.hp.hpl.jena.sparql.algebra.op.OpLeftJoin;
+import com.hp.hpl.jena.sparql.algebra.op.OpOrder;
+import com.hp.hpl.jena.sparql.algebra.op.OpPath;
+import com.hp.hpl.jena.sparql.algebra.op.OpProject;
+import com.hp.hpl.jena.sparql.algebra.op.OpPropFunc;
+import com.hp.hpl.jena.sparql.algebra.op.OpQuadBlock;
+import com.hp.hpl.jena.sparql.algebra.op.OpQuadPattern;
+import com.hp.hpl.jena.sparql.algebra.op.OpTable;
+import com.hp.hpl.jena.sparql.algebra.op.OpTopN;
+import com.hp.hpl.jena.sparql.core.Quad;
+import com.hp.hpl.jena.sparql.core.Var;
+import com.hp.hpl.jena.sparql.core.Vars;
+import com.hp.hpl.jena.sparql.expr.Expr;
+import com.hp.hpl.jena.sparql.expr.ExprVars;
+
+/**
+ * A visitor which tracks variable usage
+ * 
+ */
+public abstract class VariableUsageVisitor extends OpVisitorBase {
+
+    protected VariableUsageTracker tracker;
+
+    public VariableUsageVisitor(VariableUsageTracker tracker) {
+        this.tracker = tracker;
+    }
+
+    protected abstract void action(Collection<Var> vars);
+
+    protected abstract void action(Var var);
+
+    protected abstract void action(String var);
+    
+    @Override
+    public void visit(OpBGP opBGP) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Triple t : opBGP.getPattern().getList()) {
+            Vars.addVarsFromTriple(vars, t);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpQuadPattern quadPattern) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Quad q : quadPattern.getPattern().getList()) {
+            Vars.addVarsFromQuad(vars, q);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpQuadBlock quadBlock) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Quad q : quadBlock.getPattern().getList()) {
+            Vars.addVarsFromQuad(vars, q);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpPath opPath) {
+        if (opPath.getTriplePath().getSubject().isVariable())
+            action(opPath.getTriplePath().getSubject().getName());
+        if (opPath.getTriplePath().getObject().isVariable())
+            action(opPath.getTriplePath().getObject().getName());
+    }
+
+    @Override
+    public void visit(OpPropFunc opPropFunc) {
+        for (Node subjArg : opPropFunc.getSubjectArgs().getArgList()) {
+            if (subjArg.isVariable())
+                action(subjArg.getName());
+        }
+        for (Node objArg : opPropFunc.getObjectArgs().getArgList()) {
+            if (objArg.isVariable())
+                action(objArg.getName());
+        }
+    }
+
+    @Override
+    public void visit(OpLeftJoin opLeftJoin) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opLeftJoin.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpFilter opFilter) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opFilter.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpGraph opGraph) {
+        if (opGraph.getNode().isVariable())
+            action(opGraph.getNode().getName());
+    }
+
+    @Override
+    public void visit(OpDatasetNames dsNames) {
+        if (dsNames.getGraphNode().isVariable())
+            action(dsNames.getGraphNode().getName());
+    }
+
+    @Override
+    public void visit(OpTable opTable) {
+        action(opTable.getTable().getVars());
+    }
+
+    @Override
+    public void visit(OpAssign opAssign) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opAssign.getVarExprList().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opAssign.getVarExprList().getExpr(var));
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpExtend opExtend) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opExtend.getVarExprList().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opExtend.getVarExprList().getExpr(var));
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpOrder opOrder) {
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition condition : opOrder.getConditions()) {
+            ExprVars.varsMentioned(vars, condition);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        for (Var var : opProject.getVars()) {
+            action(var);
+        }
+    }
+
+    @Override
+    public void visit(OpGroup opGroup) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opGroup.getGroupVars().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opGroup.getGroupVars().getExpr(var));
+        }
+    }
+
+    @Override
+    public void visit(OpTopN opTop) {
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition condition : opTop.getConditions()) {
+            ExprVars.varsMentioned(vars, condition);
+        }
+        action(vars);
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
index fe3d4c4..56016fa 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
@@ -34,6 +34,7 @@ import org.junit.runners.Suite ;
     , TestTransformFilterPlacement.class
     , TestTransformMergeBGPs.class
     , TestTransformPromoteTableEmpty.class
+    , TestTransformEliminateAssignments.class
     , TestTransformTopN.class
     , TestOptimizer.class
 })

http://git-wip-us.apache.org/repos/asf/jena/blob/308810f2/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
new file mode 100644
index 0000000..1b73d25
--- /dev/null
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -0,0 +1,171 @@
+package com.hp.hpl.jena.sparql.algebra.optimize;
+
+import org.apache.jena.atlas.lib.StrUtils;
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.hp.hpl.jena.sparql.algebra.Op;
+import com.hp.hpl.jena.sparql.sse.SSE;
+
+/**
+ * Tests for the {@link TransformEliminateAssignments}
+ * 
+ */
+public class TestTransformEliminateAssignments {
+
+    private void test(String input, String... output) {
+        Op original = SSE.parseOp(input);
+        test(original, output);
+    }
+
+    private void test(Op original, String... output) {
+        // Transform
+        Op actual = TransformEliminateAssignments.eliminate(original);
+
+        // Check results
+        if (output == null) {
+            // No transformation.
+            Assert.assertEquals(original, actual);
+        } else {
+            // Transformation expected
+            Op expected = SSE.parseOp(StrUtils.strjoinNL(output));
+            Assert.assertEquals(expected, actual);
+        }
+    }
+
+    private void testNoChange(String input) {
+        test(input, (String[]) null);
+    }
+
+    private void testNoChange(String... input) {
+        test(StrUtils.strjoinNL(input), (String[]) null);
+    }
+
+    @Test
+    public void eliminate_single_use_extend_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (extend (?x true)",
+                                "    (table unit)))"),
+             "(filter (exprlist true)",
+             "  (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void eliminate_single_use_extend_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // The other assignment is removed because it's value is never used
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (extend ((?x true) (?y false))",
+                                "    (table unit)))"),
+             "(filter (exprlist true)",
+             "    (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_extend_unchanged_01() {
+        // As the assigned variable is used multiple times we leave the
+        // assignment alone
+        //@formatter:off
+        testNoChange("(filter (> (* ?x ?x) 16)",
+                     "  (extend (?x 3)",
+                     "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_extend_unchanged_02() {
+        // Because the value of the assignment is used in multiple places we
+        // leave the assignment alone
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (join",
+                     "    (extend (?x true)",
+                     "      (table unit))",
+                     "    (bgp (triple ?x ?y ?z))))");
+        //@formatter:on
+    }
+
+    @Test
+    public void scoped_use_extend_01() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // However if the scoping means the value is never used we can instead
+        // eliminate it entirely
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (project (?y)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+            "(filter (exprlist ?x)",
+            "  (project (?y)",
+            "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void scoped_use_extend_02() {
+        // If the assignment is out of scope by the time it is used in the outer
+        // scope then we can't substitute it out there
+        // However in this case we can substitute it in the inner scope
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (project (?y)",
+                                "    (filter (exprlist ?x)",
+                                "      (extend (?x true)",
+                                "        (table unit)))))"),
+            "(filter (exprlist ?x)",
+            "  (project (?y)",
+            "    (filter (exprlist true)",
+            "      (table unit))))");
+        //@formatter:on
+    }
+
+    @Test
+    public void eliminate_single_use_assign_01() {
+        //@formatter:off
+        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
+                                "  (assign (?x true)",
+                                "    (table unit)))"),
+             "(filter (exprlist true)",
+             "  (table unit))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_assign_unchanged_01() {
+        //@formatter:off
+        testNoChange("(filter (> (* ?x ?x) 16)",
+                     "  (assign (?x 3)",
+                     "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_assign_unchanged_02() {
+        // Left alone because assigned to more than once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (assign (?x true)",
+                     "    (assign (?x true)",
+                     "      (table unit))))");
+        //@formatter:on
+    }
+
+    @Test
+    public void multi_use_assign_unchanged_03() {
+        // Left alone because assigned to more than once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (assign (?x true)",
+                     "    (assign (?x false)",
+                     "      (table unit))))");
+        //@formatter:on
+    }
+}


[07/26] jena git commit: Merge branch 'master' into eliminate-assignments

Posted by rv...@apache.org.
Merge branch 'master' into eliminate-assignments

Bring eliminate-assignments up to date with master


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e1a83576
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e1a83576
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e1a83576

Branch: refs/heads/jena2
Commit: e1a8357697948c5e43f81033d47ef0840061c1db
Parents: 62dfb5a 4554915
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Nov 10 10:51:47 2014 +0000
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Nov 10 10:51:47 2014 +0000

----------------------------------------------------------------------
 apache-jena-libs/pom.xml                        |   12 +-
 apache-jena/assembly-jena-zip.xml               |   11 -
 apache-jena/jena-log4j.properties               |   16 +
 apache-jena/pom.xml                             |   71 +-
 jena-arq/.gitattributes                         |   17 +-
 jena-arq/Grammar/.gitignore                     |    4 +
 jena-arq/Grammar/BinaryRDF.thrift               |   18 +
 jena-arq/Grammar/Final/jj2html_11               |   16 +
 jena-arq/Grammar/JSON/json                      |   16 +
 jena-arq/Grammar/Notes                          |    2 +
 jena-arq/Grammar/XMLchars.txt                   |   56 -
 jena-arq/Grammar/arq.jj                         |  247 +--
 jena-arq/Grammar/gen-thrift                     |    1 +
 jena-arq/Grammar/grammar                        |   20 +-
 jena-arq/Grammar/grammarExtracts                |   16 +
 jena-arq/Grammar/header.jj                      |   18 +
 jena-arq/Grammar/jj2html                        |   16 +
 jena-arq/Grammar/jj2tokens                      |    2 +
 jena-arq/Grammar/master.jj                      |   28 +-
 jena-arq/Grammar/sparql2html                    |    1 +
 jena-arq/Grammar/sparql_11.jj                   |  208 +-
 jena-arq/Grammar/sse/grammar-sse                |   16 +
 jena-arq/Grammar/sse/jj2html                    |  922 ++++-----
 jena-arq/Grammar/sse/sse.jj                     |  490 ++---
 jena-arq/Grammar/sse/tokens.inc                 |  334 ++--
 jena-arq/Grammar/tokens2bnf                     |   88 +-
 jena-arq/bat/make_classpath.bat                 |   20 +
 jena-arq/etc/dataset-db.ttl                     |   16 +
 jena-arq/etc/dataset-owl-inf.ttl                |   16 +
 jena-arq/etc/dataset-owl.ttl                    |   16 +
 jena-arq/etc/dataset-rdfs.ttl                   |   16 +
 jena-arq/etc/dataset-rules.ttl                  |   16 +
 jena-arq/etc/dataset-trans.ttl                  |   16 +
 jena-arq/etc/dataset.ttl                        |   16 +
 jena-arq/etc/graphstore.ttl                     |   16 +
 jena-arq/etc/update-data.ttl                    |   16 +
 jena-arq/log4j.properties                       |   16 +
 jena-arq/pom.xml                                |   14 +-
 .../main/java/arq/cmdline/ModLangOutput.java    |    4 +-
 .../hp/hpl/jena/sparql/algebra/Transformer.java |    1 -
 .../jena/sparql/algebra/optimize/Optimize.java  |    2 +-
 .../optimize/TransformExtendCombine.java        |    9 +-
 .../sparql/core/DatasetGraphCollection.java     |    2 +-
 .../java/com/hp/hpl/jena/sparql/core/Quad.java  |    6 +-
 .../engine/iterator/QueryIterNullIterator.java  |    2 +-
 .../optimizer/reorder/ReorderFixedAlt.java      |   80 +
 .../com/hp/hpl/jena/sparql/expr/E_Scalar.java   |    0
 .../jena/sparql/expr/aggregate/AggCustom.java   |   91 +
 .../hpl/jena/sparql/expr/aggregate/AggNull.java |    2 +-
 .../expr/aggregate/AggregatorFactory.java       |   68 +-
 .../hpl/jena/sparql/lang/ParserARQUpdate.java   |    5 +-
 .../jena/sparql/lang/ParserSPARQL11Update.java  |   28 +-
 .../hp/hpl/jena/sparql/lang/SPARQLParser.java   |    3 -
 .../hp/hpl/jena/sparql/lang/UpdateParser.java   |   18 +-
 .../hp/hpl/jena/sparql/lang/arq/ARQParser.java  | 1399 +++++++------
 .../sparql/lang/arq/ARQParserConstants.java     |  416 ++--
 .../sparql/lang/arq/ARQParserTokenManager.java  | 1880 +++++++++---------
 .../jena/sparql/lang/arq/JavaCharStream.java    |   19 +-
 .../jena/sparql/lang/arq/ParseException.java    |   47 +-
 .../com/hp/hpl/jena/sparql/lang/arq/Token.java  |   19 +-
 .../hpl/jena/sparql/lang/arq/TokenMgrError.java |   21 +-
 .../sparql/lang/sparql_11/JavaCharStream.java   |   19 +-
 .../sparql/lang/sparql_11/ParseException.java   |   47 +-
 .../sparql/lang/sparql_11/SPARQLParser11.java   |  464 ++---
 .../lang/sparql_11/SPARQLParser11Constants.java |  402 ++--
 .../sparql_11/SPARQLParser11TokenManager.java   | 1822 +++++++++--------
 .../hpl/jena/sparql/lang/sparql_11/Token.java   |   19 +-
 .../sparql/lang/sparql_11/TokenMgrError.java    |   21 +-
 .../modify/request/UpdateWriterVisitor.java     |   18 +
 .../hp/hpl/jena/sparql/resultset/CSVInput.java  |    1 -
 .../hpl/jena/sparql/util/NodeFactoryExtra.java  |   73 +-
 .../apache/jena/atlas/RuntimeIOException.java   |   34 +
 .../org/apache/jena/atlas/csv/CSVParser.java    |   67 +-
 .../main/java/org/apache/jena/atlas/io/IO.java  |   13 +-
 .../apache/jena/atlas/io/IndentedWriter.java    |    6 +-
 .../org/apache/jena/atlas/iterator/Iter.java    |   41 +-
 .../java/org/apache/jena/atlas/json/JSON.java   |   19 +-
 .../org/apache/jena/atlas/json/JsonBuilder.java |    2 +
 .../org/apache/jena/atlas/json/JsonObject.java  |    9 +-
 .../apache/jena/atlas/json/io/JsonWriter.java   |    8 +-
 .../java/org/apache/jena/atlas/lib/FileOps.java |  236 ++-
 .../org/apache/jena/atlas/logging/LogCtl.java   |   23 +-
 .../main/java/org/apache/jena/riot/Lang.java    |    3 +
 .../java/org/apache/jena/riot/RDFFormat.java    |   81 +-
 .../java/org/apache/jena/riot/RDFLanguages.java |   43 +-
 .../org/apache/jena/riot/RDFParserRegistry.java |   16 +-
 .../org/apache/jena/riot/RDFWriterRegistry.java |   76 +-
 .../java/org/apache/jena/riot/WebContent.java   |    6 +-
 .../org/apache/jena/riot/lang/ReaderTriX.java   |  440 ++++
 .../java/org/apache/jena/riot/lang/TriX.java    |   59 +
 .../apache/jena/riot/out/JenaRDF2JSONLD.java    |   14 +-
 .../apache/jena/riot/system/StreamRDFLib.java   |    6 +-
 .../jena/riot/system/StreamRDFWriter.java       |   13 +-
 .../org/apache/jena/riot/thrift/BinRDF.java     |    2 +-
 .../org/apache/jena/riot/web/HttpNames.java     |   10 +-
 .../jena/riot/writer/StreamWriterTriX.java      |  263 +++
 .../org/apache/jena/riot/writer/WriterTriX.java |   91 +
 .../algebra/optimize/AbstractTestTransform.java |   16 +-
 .../sparql/algebra/optimize/TestOptimizer.java  |   19 +-
 .../optimize/TestSemanticEquivalence.java       |   16 +-
 .../jena/sparql/negation/TestGraphDeltas.java   |   18 +
 .../hp/hpl/jena/sparql/util/TestFmtUtils.java   |   18 +
 .../apache/jena/atlas/csv/TestCSVParser.java    |    4 +-
 .../apache/jena/atlas/lib/TestAlarmClock.java   |    5 +-
 .../java/org/apache/jena/riot/lang/TS_Lang.java |    4 +
 .../jena/riot/lang/TestCollectorStream.java     |   18 +
 .../org/apache/jena/riot/lang/TestTriXBad.java  |   76 +
 .../apache/jena/riot/lang/TestTriXReader.java   |  126 ++
 .../jena/riot/langsuite/UnitTestEval.java       |    1 +
 .../riot/system/TestFormatRegistration.java     |    3 +
 .../jena/riot/system/TestLangRegistration.java  |    7 +-
 .../apache/jena/riot/writer/TS_RiotWriter.java  |    1 +
 .../jena/riot/writer/TestRiotWriterDataset.java |    3 +
 .../jena/riot/writer/TestRiotWriterGraph.java   |    8 +-
 .../apache/jena/riot/writer/TestTriXWriter.java |   78 +
 jena-arq/testing/RIOT/Lang/.gitattributes       |    1 -
 jena-arq/testing/RIOT/Lang/TriX/trix-01.nq      |    0
 jena-arq/testing/RIOT/Lang/TriX/trix-01.trix    |    4 +
 jena-arq/testing/RIOT/Lang/TriX/trix-02.nq      |    0
 jena-arq/testing/RIOT/Lang/TriX/trix-02.trix    |    4 +
 jena-arq/testing/RIOT/Lang/TriX/trix-03.nq      |    0
 jena-arq/testing/RIOT/Lang/TriX/trix-03.trix    |    7 +
 jena-arq/testing/RIOT/Lang/TriX/trix-04.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-04.trix    |    9 +
 jena-arq/testing/RIOT/Lang/TriX/trix-05.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-05.trix    |   10 +
 jena-arq/testing/RIOT/Lang/TriX/trix-06.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-06.trix    |   10 +
 jena-arq/testing/RIOT/Lang/TriX/trix-10.nq      |    6 +
 jena-arq/testing/RIOT/Lang/TriX/trix-10.trix    |   36 +
 jena-arq/testing/RIOT/Lang/TriX/trix-11.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-11.trix    |   13 +
 jena-arq/testing/RIOT/Lang/TriX/trix-12.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-12.trix    |   14 +
 jena-arq/testing/RIOT/Lang/TriX/trix-13.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-13.trix    |   13 +
 jena-arq/testing/RIOT/Lang/TriX/trix-14.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-14.trix    |   20 +
 jena-arq/testing/RIOT/Lang/TriX/trix-15.nq      |    3 +
 jena-arq/testing/RIOT/Lang/TriX/trix-15.trix    |   21 +
 .../testing/RIOT/Lang/TriX/trix-bad-00.trix     |    4 +
 .../testing/RIOT/Lang/TriX/trix-bad-01.trix     |    6 +
 .../testing/RIOT/Lang/TriX/trix-bad-02.trix     |    7 +
 .../testing/RIOT/Lang/TriX/trix-bad-03.trix     |    8 +
 .../testing/RIOT/Lang/TriX/trix-bad-04.trix     |   10 +
 .../testing/RIOT/Lang/TriX/trix-bad-05.trix     |   11 +
 .../testing/RIOT/Lang/TriX/trix-bad-06.trix     |   10 +
 .../testing/RIOT/Lang/TriX/trix-bad-07.trix     |    7 +
 .../testing/RIOT/Lang/TriX/trix-bad-08.trix     |   11 +
 .../testing/RIOT/Lang/TriX/trix-bad-09.trix     |   11 +
 .../testing/RIOT/Lang/TriX/trix-bad-10.trix     |    9 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-1.trix  |   26 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-2.trix  |   32 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-3.trix  |   30 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-4.trix  |   34 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-5.trix  |   42 +
 jena-core/Grammar/turtle                        |   16 +
 jena-core/etc/location-mapping.ex               |   16 +
 jena-core/etc/schemagen_example.rdf             |   16 +
 jena-core/pom.xml                               |   12 +-
 .../main/java/com/hp/hpl/jena/JenaRuntime.java  |   55 +
 .../main/java/com/hp/hpl/jena/graph/Graph.java  |    9 +-
 .../java/com/hp/hpl/jena/graph/GraphAdd.java    |   37 -
 .../com/hp/hpl/jena/graph/compose/Delta.java    |   43 +-
 .../hp/hpl/jena/graph/compose/Difference.java   |    1 -
 .../hp/hpl/jena/graph/compose/Intersection.java |    4 +-
 .../hp/hpl/jena/graph/impl/GraphAddList.java    |   65 -
 .../hp/hpl/jena/graph/impl/GraphMatcher.java    |   28 +-
 jena-core/src/main/java/link2readme.html        |   16 +
 jena-core/src/main/resources/etc/owl-b.rules    |   16 +
 .../src/main/resources/etc/owl-fb-micro.rules   |   16 +
 .../src/main/resources/etc/owl-fb-mini.rules    |   16 +
 .../src/main/resources/etc/owl-fb-old.rules     |   16 +
 jena-core/src/main/resources/etc/owl-fb.rules   |   16 +
 jena-core/src/main/resources/etc/owl.rules      |   16 +
 .../src/main/resources/etc/rdfs-b-tuned.rules   |   16 +
 jena-core/src/main/resources/etc/rdfs-b.rules   |   16 +
 .../main/resources/etc/rdfs-fb-lp-expt.rules    |   16 +
 .../resources/etc/rdfs-fb-tgc-noresource.rules  |   16 +
 .../main/resources/etc/rdfs-fb-tgc-simple.rules |   16 +
 .../src/main/resources/etc/rdfs-fb-tgc.rules    |   16 +
 jena-core/src/main/resources/etc/rdfs-fb.rules  |   16 +
 .../main/resources/etc/rdfs-noresource.rules    |   16 +
 jena-core/src/main/resources/etc/rdfs.rules     |   16 +
 .../src/main/resources/jena-log4j.properties    |   16 +
 jena-core/src/main/resources/ont-policy.rdf     |   16 +
 .../org/apache/jena/vocabulary/assembler.ttl    |   16 +
 .../hpl/jena/graph/compose/test/TestDelta.java  |  149 +-
 .../jena/graph/compose/test/TestDifference.java |  119 +-
 .../hpl/jena/graph/compose/test/TestDyadic.java |    5 +-
 .../graph/compose/test/TestIntersection.java    |  138 +-
 .../jena/graph/compose/test/TestPackage.java    |    9 +-
 .../hpl/jena/graph/compose/test/TestUnion.java  |  120 +-
 .../java/com/hp/hpl/jena/test/TestPackage.java  |    3 +-
 .../com/hp/hpl/jena/test/TestSystemSetup.java   |   39 +
 .../testing/Turtle/RaptorTurtle/README.txt      |    4 +
 .../testing/Turtle/RaptorTurtle/test-10.out     |    4 +-
 jena-csv/LICENSE                                |  202 ++
 jena-csv/NOTICE                                 |    5 +
 jena-csv/ReleaseNotes.txt                       |   14 +
 jena-csv/pom.xml                                |  178 ++
 .../org/apache/jena/propertytable/Column.java   |   45 +
 .../jena/propertytable/PropertyTable.java       |  126 ++
 .../java/org/apache/jena/propertytable/Row.java |   75 +
 .../jena/propertytable/graph/GraphCSV.java      |   62 +
 .../propertytable/graph/GraphPropertyTable.java |  203 ++
 .../graph/QueryIterPropertyTable.java           |  115 ++
 .../graph/QueryIterPropertyTableRow.java        |  243 +++
 .../jena/propertytable/graph/RowMatch.java      |   48 +
 .../graph/StageGeneratorPropertyTable.java      |   57 +
 .../jena/propertytable/impl/ColumnImpl.java     |   58 +
 .../impl/PropertyTableArrayImpl.java            |  346 ++++
 .../impl/PropertyTableBuilder.java              |  136 ++
 .../impl/PropertyTableHashMapImpl.java          |  357 ++++
 .../apache/jena/propertytable/lang/CSV2RDF.java |   33 +
 .../apache/jena/propertytable/lang/LangCSV.java |  155 ++
 .../lang/ReaderRIOTFactoryCSV.java              |   31 +
 .../propertytable/lang/ReaderRIOTLangCSV.java   |   77 +
 .../apache/jena/propertytable/util/IRILib.java  |  264 +++
 jena-csv/src/main/java/riotcmdx/csv2rdf.java    |   53 +
 .../jena/propertytable/AbstractColumnTest.java  |   80 +
 .../AbstractPropertyTableTest.java              |   57 +
 .../jena/propertytable/AbstractRowTest.java     |  106 +
 .../org/apache/jena/propertytable/BaseTest.java |   47 +
 .../jena/propertytable/TS_PropertyTable.java    |   42 +
 .../jena/propertytable/graph/GraphCSVTest.java  |  156 ++
 .../impl/AbstractPropertyTableBuilderTest.java  |  139 ++
 .../impl/PropertyTableArrayImplTest.java        |   84 +
 .../PropertyTableBuilderForArrayImplTest.java   |   39 +
 .../PropertyTableBuilderForHashMapImplTest.java |   34 +
 .../impl/PropertyTableHashMapImplTest.java      |   46 +
 .../jena/propertytable/lang/TestLangCSV.java    |  113 ++
 .../HEFCE_organogram_senior_data_31032011.csv   |    5 +
 .../test/resources/PLOSone-search-results.csv   |    6 +
 jena-csv/src/test/resources/Palo_Alto_Trees.csv |    6 +
 jena-csv/src/test/resources/log4j.properties    |   19 +
 jena-csv/src/test/resources/test.csv            |    3 +
 jena-extras/jena-querybuilder/LICENSE           |  202 ++
 jena-extras/jena-querybuilder/README.md         |   49 +
 .../jena-querybuilder/license-header.txt        |   14 +
 jena-extras/jena-querybuilder/pom.xml           |   56 +
 .../arq/querybuilder/AbstractQueryBuilder.java  |  362 ++++
 .../jena/arq/querybuilder/AskBuilder.java       |  198 ++
 .../jena/arq/querybuilder/ConstructBuilder.java |  244 +++
 .../jena/arq/querybuilder/SelectBuilder.java    |  281 +++
 .../querybuilder/clauses/ConstructClause.java   |   74 +
 .../arq/querybuilder/clauses/DatasetClause.java |   75 +
 .../arq/querybuilder/clauses/PrologClause.java  |  105 +
 .../arq/querybuilder/clauses/SelectClause.java  |   79 +
 .../clauses/SolutionModifierClause.java         |   89 +
 .../arq/querybuilder/clauses/WhereClause.java   |  153 ++
 .../arq/querybuilder/clauses/package-info.java  |    7 +
 .../querybuilder/handlers/ConstructHandler.java |   89 +
 .../querybuilder/handlers/DatasetHandler.java   |  149 ++
 .../jena/arq/querybuilder/handlers/Handler.java |   42 +
 .../querybuilder/handlers/PrologHandler.java    |  126 ++
 .../querybuilder/handlers/SelectHandler.java    |  133 ++
 .../handlers/SolutionModifierHandler.java       |  269 +++
 .../arq/querybuilder/handlers/WhereHandler.java |  310 +++
 .../arq/querybuilder/handlers/package-info.java |    9 +
 .../jena/arq/querybuilder/package-info.java     |    9 +
 .../rewriters/AbstractRewriter.java             |  222 +++
 .../querybuilder/rewriters/ElementRewriter.java |  213 ++
 .../querybuilder/rewriters/ExprRewriter.java    |  203 ++
 .../rewriters/NodeValueRewriter.java            |   96 +
 .../arq/querybuilder/rewriters/OpRewriter.java  |  368 ++++
 .../querybuilder/rewriters/PathRewriter.java    |  163 ++
 .../querybuilder/rewriters/package-info.java    |    7 +
 .../jena/arq/AbstractRegexpBasedTest.java       |   99 +
 .../querybuilder/AbstractQueryBuilderTest.java  |  126 ++
 .../querybuilder/AskBuilderContractTest.java    |   53 +
 .../ConstructBuilderContractTest.java           |   53 +
 .../querybuilder/SelectBuilderContractTest.java |   53 +
 .../arq/querybuilder/SelectBuilderTest.java     |  132 ++
 .../clauses/AbstractClauseTest.java             |   58 +
 .../querybuilder/clauses/DatasetClauseTest.java |  150 ++
 .../querybuilder/clauses/PrologClauseTest.java  |  144 ++
 .../querybuilder/clauses/SelectClauseTest.java  |  170 ++
 .../clauses/SolutionModifierTest.java           |  175 ++
 .../querybuilder/clauses/WhereClauseTest.java   |  285 +++
 .../handlers/AbstractHandlerTest.java           |   44 +
 .../handlers/ConstructHandlerTest.java          |   96 +
 .../handlers/DatasetHandlerTest.java            |  126 ++
 .../handlers/PrologHandlerTest.java             |  109 +
 .../handlers/SelectHandlerTest.java             |  152 ++
 .../handlers/SolutionModifierHandlerTest.java   |  201 ++
 .../querybuilder/handlers/WhereHandlerTest.java |  296 +++
 jena-extras/pom.xml                             |  135 ++
 jena-fuseki/Data/books.ttl                      |   16 +
 jena-fuseki/Data/test_abox.ttl                  |   16 +
 jena-fuseki/Data/test_data_rdfs.ttl             |   16 +
 jena-fuseki/Data/test_tbox.ttl                  |   16 +
 jena-fuseki/SEE_FUSEKI2                         |    0
 jena-fuseki/assembly-dist.xml                   |    4 +-
 jena-fuseki/config-tdb-text.ttl                 |   16 +
 jena-fuseki/dist/LICENSE                        |  548 +++++
 jena-fuseki/dist/LICENSE-dist                   |  548 -----
 jena-fuseki/dist/NOTICE                         |  216 ++
 jena-fuseki/dist/NOTICE-dist                    |  216 --
 jena-fuseki/fuseki-server.bat                   |   16 +
 jena-fuseki/jetty-fuseki.xml                    |   17 +
 jena-fuseki/make_cp_mvn                         |   16 +
 jena-fuseki/make_links                          |    3 +-
 jena-fuseki/pom.xml                             |   24 +-
 jena-fuseki/run_cp                              |   17 +-
 jena-fuseki/s-delete                            |  714 ++++++-
 jena-fuseki/s-get                               |  714 ++++++-
 jena-fuseki/s-head                              |  714 ++++++-
 jena-fuseki/s-post                              |  714 ++++++-
 jena-fuseki/s-put                               |  714 ++++++-
 jena-fuseki/s-query                             |  714 ++++++-
 jena-fuseki/s-update                            |  714 ++++++-
 jena-fuseki/s-update-form                       |  714 ++++++-
 .../dev/BackwardForwardDescribeFactory.java     |   95 -
 jena-fuseki/src-dev/dev/DevFuseki.java          |  149 --
 jena-fuseki/src-dev/dev/RunFuseki.java          |    2 +-
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |   13 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |    2 +-
 .../java/org/apache/jena/fuseki/HttpNames.java  |    3 +-
 .../jena/fuseki/mgt/ManagementServer.java       |    1 +
 .../org/apache/jena/fuseki/mgt/PingServlet.java |   75 +
 .../apache/jena/fuseki/servlets/HttpAction.java |   52 +-
 .../jena/fuseki/servlets/SPARQL_Query.java      |   34 +-
 .../jena/fuseki/servlets/SPARQL_REST_R.java     |    5 +-
 .../jena/fuseki/servlets/SPARQL_REST_RW.java    |    6 +
 .../fuseki/servlets/SPARQL_ServletBase.java     |  165 +-
 .../jena/fuseki/servlets/SPARQL_Update.java     |    1 +
 .../jena/fuseki/servlets/SPARQL_Upload.java     |    1 +
 .../jena/fuseki/servlets/ServletBase.java       |   15 +
 jena-fuseki/tdb.ttl                             |   16 +
 jena-fuseki2/.gitignore                         |    3 +
 jena-fuseki2/D.trig                             |   18 +-
 jena-fuseki2/D.ttl                              |   18 +-
 jena-fuseki2/Data/books.ttl                     |   16 +
 jena-fuseki2/Data/test_abox.ttl                 |   16 +
 jena-fuseki2/Data/test_data_rdfs.ttl            |   16 +
 jena-fuseki2/Data/test_tbox.ttl                 |   16 +
 jena-fuseki2/assembly-dist.xml                  |    4 +-
 jena-fuseki2/backup                             |   15 +
 jena-fuseki2/dist/LICENSE                       |  608 ++++++
 jena-fuseki2/dist/LICENSE-dist                  |  600 ------
 jena-fuseki2/dist/NOTICE                        |  216 ++
 jena-fuseki2/dist/NOTICE-dist                   |  216 --
 jena-fuseki2/docs/fuseki-configuration.md       |  155 --
 jena-fuseki2/docs/fuseki-data-services.md       |   60 -
 jena-fuseki2/docs/fuseki-java.md                |    7 -
 jena-fuseki2/docs/fuseki-layout.md              |   72 -
 jena-fuseki2/docs/fuseki-logging.md             |   40 -
 jena-fuseki2/docs/fuseki-main.md                |  108 -
 jena-fuseki2/docs/fuseki-quick-start.md         |   28 -
 jena-fuseki2/docs/fuseki-run.md                 |   51 -
 jena-fuseki2/docs/fuseki-security.md            |   12 -
 jena-fuseki2/docs/fuseki-server-protocol.md     |  204 --
 jena-fuseki2/docs/fuseki-stats.md               |  113 --
 jena-fuseki2/docs/rdf-sparql-standards.md       |   23 -
 jena-fuseki2/docs/soh.md                        |   95 -
 jena-fuseki2/dwim                               |   16 +-
 jena-fuseki2/dwim-upload                        |   16 +
 jena-fuseki2/examples/jetty-fuseki.xml          |   17 +
 jena-fuseki2/fuseki-server.bat                  |   16 +
 jena-fuseki2/make-html                          |   15 +
 jena-fuseki2/make_cp_mvn                        |   16 +
 jena-fuseki2/pom.xml                            |   27 +-
 jena-fuseki2/run-fuseki                         |    3 +-
 .../dev/BackwardForwardDescribeFactory.java     |   95 -
 jena-fuseki2/src-dev/dev/PROJECT.java           |   80 -
 jena-fuseki2/src-dev/dev/RunAsWebapp.java       |   50 -
 jena-fuseki2/src-dev/dev/RunFuseki2.java        |   96 -
 .../java/org/apache/jena/fuseki/Fuseki.java     |   25 +-
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |   13 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |    2 +-
 .../org/apache/jena/fuseki/FusekiLogging.java   |   44 +-
 .../apache/jena/fuseki/jetty/JettyFuseki.java   |    6 +-
 .../org/apache/jena/fuseki/mgt/ActionPing.java  |    9 +-
 .../org/apache/jena/fuseki/mgt/ActionStats.java |    1 +
 .../apache/jena/fuseki/server/CounterName.java  |    3 +-
 .../apache/jena/fuseki/server/SystemState.java  |    2 +-
 .../apache/jena/fuseki/servlets/ActionBase.java |   55 +-
 .../apache/jena/fuseki/servlets/ActionLib.java  |   18 +-
 .../jena/fuseki/servlets/ActionSPARQL.java      |   36 +-
 .../apache/jena/fuseki/servlets/HttpAction.java |   68 +-
 .../jena/fuseki/servlets/ResponseResultSet.java |    3 +-
 .../jena/fuseki/servlets/SPARQL_GSP_R.java      |    4 +-
 .../jena/fuseki/servlets/SPARQL_GSP_RW.java     |   14 +-
 .../jena/fuseki/servlets/SPARQL_Query.java      |   70 +-
 .../jena/fuseki/servlets/SPARQL_Update.java     |   98 +-
 .../jena/fuseki/servlets/SPARQL_Upload.java     |    2 +
 .../jena/fuseki/servlets/ServletBase.java       |   15 +-
 .../org/apache/jena/fuseki/servlets/Upload.java |    1 -
 .../src/main/resources/log4j.properties         |   23 +-
 .../org/apache/jena/fuseki/server/config.ttl    |    4 +-
 .../org/apache/jena/fuseki/server/shiro.ini     |    2 +
 jena-fuseki2/src/main/webapp/WEB-INF/web.xml    |   16 +
 jena-iri/pom.xml                                |   10 +-
 jena-jdbc/jena-jdbc-core/pom.xml                |    4 +-
 .../main/resources/jena-jdbc-log4j.properties   |   16 +
 jena-jdbc/jena-jdbc-driver-bundle/pom.xml       |   20 +-
 jena-jdbc/jena-jdbc-driver-mem/pom.xml          |    6 +-
 jena-jdbc/jena-jdbc-driver-remote/pom.xml       |   10 +-
 jena-jdbc/jena-jdbc-driver-tdb/pom.xml          |   10 +-
 jena-jdbc/pom.xml                               |    4 +-
 jena-maven-tools/pom.xml                        |   11 +-
 jena-parent/pom.xml                             |  102 +-
 jena-sdb/Data/data.ttl                          |   16 +
 jena-sdb/Data/data2.ttl                         |   16 +
 jena-sdb/Old/PG_GRANT                           |   10 -
 jena-sdb/Old/ToDo-AFS                           |   67 -
 jena-sdb/Store/sdb-sap-layout1.ttl              |   16 +
 jena-sdb/Store/sdb-sap.ttl                      |   16 +
 jena-sdb/assembly.xml                           |    4 +-
 jena-sdb/dist/LICENSE                           |  246 +++
 jena-sdb/dist/LICENSE-dist                      |  246 ---
 jena-sdb/dist/NOTICE                            |   42 +
 jena-sdb/dist/NOTICE-dist                       |   42 -
 jena-sdb/dist/dist.sh                           |   15 +
 jena-sdb/log4j.properties                       |   16 +
 jena-sdb/pom.xml                                |   18 +-
 jena-sdb/src-dev/resources/etc/daml-micro.rules |   16 +
 .../src-dev/resources/etc/dig-daml-axioms.rdf   |   17 +-
 .../src-dev/resources/etc/dig-owl-axioms.rdf    |   16 +
 .../src-dev/resources/etc/location-mapping.ex   |   16 +
 .../src-dev/resources/etc/ont-policy-test.rdf   |   17 +
 jena-sdb/src-dev/resources/etc/ont-policy.rdf   |   17 +
 jena-sdb/src-dev/resources/etc/owl-b.rules      |   16 +
 .../src-dev/resources/etc/owl-fb-micro.rules    |   16 +
 .../src-dev/resources/etc/owl-fb-mini.rules     |   16 +
 jena-sdb/src-dev/resources/etc/owl-fb-old.rules |   16 +
 jena-sdb/src-dev/resources/etc/owl-fb.rules     |   16 +
 jena-sdb/src-dev/resources/etc/owl.rules        |   16 +
 .../src-dev/resources/etc/rdfs-b-tuned.rules    |   16 +
 jena-sdb/src-dev/resources/etc/rdfs-b.rules     |   16 +
 .../src-dev/resources/etc/rdfs-fb-lp-expt.rules |   16 +
 .../resources/etc/rdfs-fb-tgc-noresource.rules  |   16 +
 .../resources/etc/rdfs-fb-tgc-simple.rules      |   16 +
 .../src-dev/resources/etc/rdfs-fb-tgc.rules     |   16 +
 jena-sdb/src-dev/resources/etc/rdfs-fb.rules    |   16 +
 .../src-dev/resources/etc/rdfs-noresource.rules |   16 +
 jena-sdb/src-dev/resources/etc/rdfs.rules       |   16 +
 .../src-dev/resources/etc/schemagen_example.rdf |   17 +
 jena-security/pom.xml                           |   16 +-
 .../apache/jena/security/example/example.ttl    |   16 +
 .../graph/SecuredPrefixMappingTest.java         |    3 +-
 .../jena/security/graph/TDBGraphTest.java       |    4 +-
 jena-spatial/pom.xml                            |    8 +-
 .../jena/query/spatial/SpatialIndexContext.java |    5 +-
 .../jena/query/spatial/SpatialIndexLucene.java  |    8 +-
 .../jena/query/spatial/SpatialIndexSolr.java    |   49 +-
 .../jena/query/spatial/SpatialQueryFuncs.java   |   59 +
 jena-tdb/log4j.properties                       |   16 +
 jena-tdb/pom.xml                                |   18 +-
 .../com/hp/hpl/jena/tdb/StoreConnection.java    |   20 +-
 .../java/com/hp/hpl/jena/tdb/TDBFactory.java    |    6 +-
 .../jena/tdb/assembler/DatasetAssemblerTDB.java |    2 +-
 .../jena/tdb/assembler/NodeTableAssembler.java  |    4 +-
 .../jena/tdb/assembler/TDBGraphAssembler.java   |    2 +-
 .../hp/hpl/jena/tdb/base/block/BlockParams.java |    6 +-
 .../tdb/base/file/BufferAllocatorDirect.java    |   18 +
 .../jena/tdb/base/file/BufferAllocatorMem.java  |   18 +
 .../com/hp/hpl/jena/tdb/base/file/FileSet.java  |    4 +-
 .../com/hp/hpl/jena/tdb/base/file/Location.java |   10 +-
 .../com/hp/hpl/jena/tdb/index/IndexParams.java  |   39 +-
 .../java/com/hp/hpl/jena/tdb/setup/Build.java   |   72 +-
 .../hpl/jena/tdb/setup/DatasetBuilderBasic.java |   14 +-
 .../hpl/jena/tdb/setup/DatasetBuilderStd.java   |  110 +-
 .../com/hp/hpl/jena/tdb/setup/StoreParams.java  |  434 +++-
 .../hpl/jena/tdb/setup/StoreParamsBuilder.java  |  278 +--
 .../hp/hpl/jena/tdb/setup/StoreParamsCodec.java |  215 ++
 .../hp/hpl/jena/tdb/setup/StoreParamsConst.java |  118 ++
 .../hpl/jena/tdb/setup/StoreParamsDynamic.java  |   54 +
 .../com/hp/hpl/jena/tdb/solver/SolverLib.java   |   65 +-
 .../tdb/store/bulkloader2/CmdIndexBuild.java    |    2 +-
 .../tdb/store/bulkloader2/CmdIndexCopy.java     |    4 +-
 .../store/bulkloader2/CmdNodeTableBuilder.java  |    4 +-
 .../hpl/jena/tdb/store/nodetable/NodeTable.java |    4 +
 .../tdb/store/nodetable/NodeTableCache.java     |    3 +-
 .../tdb/store/nodetable/NodeTableLogger.java    |    5 +
 .../tdb/store/nodetable/NodeTableNative.java    |    5 +
 .../tdb/store/nodetable/NodeTableWrapper.java   |    1 +
 .../java/com/hp/hpl/jena/tdb/sys/DebugTDB.java  |    2 +-
 .../java/com/hp/hpl/jena/tdb/sys/SystemTDB.java |    2 +-
 .../java/com/hp/hpl/jena/tdb/sys/TDBMaker.java  |   32 +-
 .../jena/tdb/transaction/NodeTableTrans.java    |    6 +
 .../hpl/jena/tdb/transaction/Transaction.java   |  186 +-
 jena-tdb/src/main/java/tdb/CmdRewriteIndex.java |    4 +-
 .../src/main/java/tdb/cmdline/ModLocation.java  |    2 +-
 .../main/java/tdb/cmdline/ModTDBDataset.java    |    2 +-
 .../src/main/java/tdb/tools/dumpnodetable.java  |    2 +-
 .../src/main/java/tdb/tools/tdbgenindex.java    |    4 +-
 .../test/java/com/hp/hpl/jena/tdb/TC_TDB.java   |    8 +-
 .../jena/tdb/base/file/TestLocationLock.java    |   30 +-
 .../tdb/base/objectfile/TestStringFileDisk.java |    2 +-
 .../hpl/jena/tdb/extra/T_QuadsObjectIsNull.java |    2 +-
 .../jena/tdb/extra/T_TDBWriteTransaction.java   |    2 +-
 .../hp/hpl/jena/tdb/extra/T_TransSystem.java    |    6 +-
 .../tdb/extra/T_TransSystemMultiDatasets.java   |    4 +-
 .../jena/tdb/graph/AbstractTestGraphsTDB.java   |    6 +-
 .../jena/tdb/graph/TestPrefixMappingTDB.java    |    6 +-
 .../java/com/hp/hpl/jena/tdb/junit/Base_TS.java |    8 +-
 .../com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java  |   33 +
 .../hp/hpl/jena/tdb/setup/TestStoreParams.java  |  143 ++
 .../jena/tdb/setup/TestStoreParamsChoose.java   |  158 ++
 .../jena/tdb/setup/TestStoreParamsCreate.java   |  171 ++
 .../jena/tdb/store/TestDatasetTDBPersist.java   |    2 +-
 .../com/hp/hpl/jena/tdb/store/TestGraphTDB.java |    2 +-
 .../com/hp/hpl/jena/tdb/store/TestLoader.java   |    2 +-
 .../tdb/transaction/TestNodeTableTransDisk.java |    2 +-
 .../transaction/TestObjectFileTransStorage.java |    4 +-
 .../jena/tdb/transaction/TestTransRestart.java  |    4 +-
 .../tdb/transaction/TestTransactionTDB.java     |    2 +-
 jena-text/.gitignore                            |    0
 jena-text/data.ttl                              |    4 -
 jena-text/pom.xml                               |   16 +-
 .../apache/jena/query/text/TextQueryFuncs.java  |    2 +-
 .../assembler/AbstractTestTextAssembler.java    |    2 +-
 jena-text/text-config.ttl                       |   18 +-
 pom.xml                                         |   22 +-
 516 files changed, 30085 insertions(+), 10019 deletions(-)
----------------------------------------------------------------------



[19/26] jena git commit: Merge branch 'master' into eliminate-assignments-jena3

Posted by rv...@apache.org.
http://git-wip-us.apache.org/repos/asf/jena/blob/9d684173/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/query/ARQ.java
index 0000000,420e3b9..5ba3074
mode 000000,100644..100644
--- a/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
@@@ -1,0 -1,582 +1,594 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one
+  * or more contributor license agreements.  See the NOTICE file
+  * distributed with this work for additional information
+  * regarding copyright ownership.  The ASF licenses this file
+  * to you under the Apache License, Version 2.0 (the
+  * "License"); you may not use this file except in compliance
+  * with the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.jena.query;
+ 
+ import org.apache.jena.riot.RIOT ;
+ import org.apache.jena.sparql.ARQConstants ;
+ import org.apache.jena.sparql.SystemARQ ;
+ import org.apache.jena.sparql.algebra.optimize.TransformOrderByDistinctApplication ;
+ import org.apache.jena.sparql.engine.http.Service ;
+ import org.apache.jena.sparql.engine.main.StageBuilder ;
+ import org.apache.jena.sparql.lib.Metadata ;
+ import org.apache.jena.sparql.mgt.ARQMgt ;
+ import org.apache.jena.sparql.mgt.Explain ;
+ import org.apache.jena.sparql.mgt.SystemInfo ;
+ import org.apache.jena.sparql.mgt.Explain.InfoLevel ;
+ import org.apache.jena.sparql.util.Context ;
+ import org.apache.jena.sparql.util.MappingRegistry ;
+ import org.apache.jena.sparql.util.Symbol ;
+ import org.slf4j.Logger ;
+ import org.slf4j.LoggerFactory ;
+ 
+ /** ARQ - miscellaneous settings */
+ 
+ public class ARQ
+ {
+     /** Name of the execution logger */
+     public static final String logExecName = "com.hp.hpl.jena.arq.exec" ;
+     
+     /** Name of the information logger */
+     public static final String logInfoName = "com.hp.hpl.jena.arq.info" ;
+     
+     /** Name of the logger for remote HTTP requests */
+     public static final String logHttpRequestName = "com.hp.hpl.jena.arq.service" ;
+     
+     private static final Logger logExec = LoggerFactory.getLogger(logExecName) ;
+     private static final Logger logInfo = LoggerFactory.getLogger(logInfoName) ;
+     private static final Logger logHttpRequest = LoggerFactory.getLogger(logHttpRequestName) ;
+ 
+     /** The execution logger */
+     public static Logger getExecLogger() { return logExec ; }
+     
+     /** The information logger */
+     public static Logger getInfoLogger() { return logInfo ; }
+     
+     /** The HTTP Request logger */
+     public static Logger getHttpRequestLogger() { return logHttpRequest ; }
+ 
+     /** Symbol to enable logging of execution.  
+      * Must also set log4j, or other logging system,
+      * for logger "com.hp.hpl.jena.sparql.exec"
+      * e.g. log4j.properties -- log4j.logger.com.hp.hpl.jena.sparql.exec=INFO
+      * See the <a href="http://jena.apache.org/documentation/query/logging.html">ARQ Logging Documentation</a>.
+      */
+     public static final Symbol symLogExec           = ARQConstants.allocSymbol("logExec") ;
+     
+     /** Get the currently global execution logging setting */  
+     public static Explain.InfoLevel getExecutionLogging() { return (Explain.InfoLevel)ARQ.getContext().get(ARQ.symLogExec) ; }
+     
+     /** Set execution logging - logging is to logger "com.hp.hpl.jena.arq.exec" at level INFO.
+      *  An appropriate logging configuration is also required.
+      */
+     public static void setExecutionLogging(Explain.InfoLevel infoLevel)
+     {
+         if ( InfoLevel.NONE.equals(infoLevel) )
+         {
+             ARQ.getContext().unset(ARQ.symLogExec) ;
+             return ;
+         }
+         
+         ARQ.getContext().set(ARQ.symLogExec, infoLevel) ;
+ //        if ( ! getExecLogger().isInfoEnabled() )
+ //            getExecLogger().warn("Attempt to enable execution logging but the logger '"+logExecName+"' is not logging at level INFO") ;
+     }
+ 
+     /** IRI for ARQ */  
+     public static final String arqIRI = "http://jena.hpl.hp.com/#arq" ;
+ 
+     /** Root of ARQ-defined parameter names */  
+     public static final String arqParamNS = "http://jena.apache.org/ARQ#" ;
+     
+     /** Prefix for ARQ-defined parameter names */  
+     public static final String arqSymbolPrefix = "arq" ;
+     
+     /** Stick exactly to the spec.
+      */
+     public static final Symbol strictSPARQL =
+         ARQConstants.allocSymbol("strictSPARQL") ;
+     
+     /** Controls bNode labels as &lt;_:...&gt; or not -
+      * that is a pseudo URIs.
+      * This does not affect [] or _:a bNodes as variables in queries. 
+      */
+ 
+     public static final Symbol constantBNodeLabels =
+         ARQConstants.allocSymbol("constantBNodeLabels") ;
+     
+     /** Enable built-in property functions - also called "magic properties".
+      * These are properties in triple patterns that need
+      * calculation, not matching.  See ARQ documentation for more details.
+      * rdfs:member and http://jena.apache.org/ARQ/list#member are provided.
+      */
+ 
+     public static final Symbol enablePropertyFunctions =
+         ARQConstants.allocSymbol("enablePropertyFunctions") ;
+ 
+     /** Enable logging of execution timing. 
+      */
+ 
+     public static final Symbol enableExecutionTimeLogging =
+         ARQConstants.allocSymbol("enableExecutionTimeLogging") ;
+ 
+     /** If true, XML result sets written will contain the graph bNode label
+      *  See also inputGraphBNodeLabels
+      */
+     
+     public static final Symbol outputGraphBNodeLabels =  
+         ARQConstants.allocSymbol("outputGraphBNodeLabels") ;
+ 
+     /** If true, XML result sets will use the bNode label in the result set itself.
+      *  See also outputGraphBNodeLabels
+      */
+     
+     public static final Symbol inputGraphBNodeLabels =  
+         ARQConstants.allocSymbol("inputGraphBNodeLabels") ;
+ 
+     /** Turn on processing of blank node labels in queries */  
+     public static void enableBlankNodeResultLabels() { enableBlankNodeResultLabels(true) ; }
+     
+     /** Turn on/off processing of blank node labels in queries */  
+     public static void enableBlankNodeResultLabels(boolean val)
+     { 
+         Boolean b = val;
+         globalContext.set(inputGraphBNodeLabels, b) ;
+         globalContext.set(outputGraphBNodeLabels, b) ;
+     }
+ 
+ 
+     /**
+      * Set timeout.  The value of this symbol gives thevalue of the timeout in milliseconds
+      * <ul>
+      * <li>A Number; the long value is used</li>
+      * <li>A string, e.g. "1000", parsed as a number</li>
+      * <li>A string, as two numbers separated by a comma, e.g. "500,10000" parsed as two numbers</li>
+      * </ul>
+      * @see QueryExecution#setTimeout(long)
+      * @see QueryExecution#setTimeout(long,long)
+      */
+     public static final Symbol queryTimeout = ARQConstants.allocSymbol("queryTimeout") ;
+     
+     // This can't be a context constant because NodeValues don't look in the context.
+ //    /**
+ //     * Context symbol controlling Roman Numerals in Filters.
+ //     */
+ //    public static final Symbol enableRomanNumerals = ARQConstants.allocSymbol("romanNumerals") ;
+ 
+     /**
+      * Context key for StageBuilder used in BGP compilation 
+      */
+     public static final Symbol stageGenerator = ARQConstants.allocSymbol("stageGenerator") ;
+ 
+     /**
+      * Context key to control hiding non-distinuished variables 
+      */
+     public static final Symbol hideNonDistiguishedVariables = ARQConstants.allocSymbol("hideNonDistiguishedVariables") ;
+ 
+     /**
+      * Use the SAX parser for XML result sets.  The default is to use StAX for
+      * full streaming of XML results.  The SAX parser takes a copy of the result set
+      * before giving the ResultSet to the calling application.
+      */
+     public static final Symbol useSAX = ARQConstants.allocSymbol("useSAX") ;
+     
+     /** 
+      * Indicate whether duplicate select and groupby variables are allowed. 
+      * If false, duplicates are silently supressed; it's not an error.  
+      */
+     public static final boolean allowDuplicateSelectColumns = false ;
+ 
+     /**
+      * Determine which regular expression system to use.
+      * The value of this context entry should be a string or symbol
+      * of one of the following:
+      *   javaRegex :   use java.util.regex (support features outside the strict SPARQL regex language)
+      *   xercesRegex : use the internal XPath regex engine (more compliant)  
+      */
+     
+     public static final Symbol regexImpl =  ARQConstants.allocSymbol("regexImpl") ;
+     
+         
+     /** Symbol to name java.util.regex regular expression engine */ 
+     public static final Symbol javaRegex =  ARQConstants.allocSymbol("javaRegex") ;
+     /** Symbol to name the Xerces-J regular expression engine */ 
+     public static final Symbol xercesRegex =  ARQConstants.allocSymbol("xercesRegex") ;
+ 
+     /** 
+      * Use this Symbol to allow passing additional query parameters to a 
+      * SERVICE <IRI> call.
+      * Parameters need to be grouped by SERVICE <IRI>,  
+      * a Map<String, Map<String,List<String>>> is assumed.
+      * The key of the first map is the SERVICE IRI, the value is a Map 
+      * which maps the name of a query string parameters to its values.
+      * 
+      * @see org.apache.jena.sparql.engine.http.Service
+      */
+     public static final Symbol serviceParams = ARQConstants.allocSymbol("serviceParams") ;
+     
+     /**
+      * Control whether SERVICE processing is allowed.
+      * If the context of the query exexcution contains this, 
+      * and it's set to "false", then SERVICE is not allowed.
+      */
+     
+     public static final Symbol serviceAllowed = Service.serviceAllowed ;
+     
+     /**
+      * A Long value that specifies the number of bindings (or triples for CONSTRUCT queries) to be stored in memory by sort
+      * operations or hash tables before switching to temporary disk files.  The value defaults to -1, which will always
+      * keep the bindings in memory and never write to temporary files.  The amount of memory used will vary based on
+      * the size of the bindings.  If you are retrieving large literal strings, then you may need to lower the value. 
+      * <p/>
+      * Note that for a complex query, several sort or hash operations might be running in parallel; each one will be
+      * allowed to retain as many bindings in memory as this value specifies before it starts putting data in temporary
+      * files.  Also, several running sessions could be doing such operations concurrently.  Therefore, the total number
+      * of bindings held in memory could be many times this value; it is necessary to keep this fact in mind when
+      * choosing the value.
+      * <p/>
+      * Operations currently affected by this symbol: <br>
+      * ORDER BY, SPARQL Update, CONSTRUCT (optionally)
+      * <p/>
+      * TODO: Give a reasonable suggested value here.  10,000?
+      * <p/>
+      * @see <a href="https://issues.apache.org/jira/browse/JENA-119">JENA-119</a>
+      */
+     // Some possible additions to the list:
+     // Sort: DISTINCT, merge joins<br>
+     // Hash table: GROUP BY, MINUS, SERVICE, VALUES, and hash joins <br>
+     public static final Symbol spillToDiskThreshold = ARQConstants.allocSymbol("spillToDiskThreshold") ;
+     
+     // Optimizer controls.
+     
+     /** 
+      *  Globally switch the default optimizer on and off : 
+      *  Note that storage subsystems may also be applying 
+      *  separately controlled optimizations.
+      */
+     
+     public static void enableOptimizer(boolean state) 
+     {
+         enableOptimizer(ARQ.getContext(), state) ;
+     }
+     
+     /** 
+      *  Switch the default optimizer on and off for a specific Context. 
+      *  Note that storage subsystems may also be applying 
+      *  separately controlled optimizations.
+      */
+     public static void enableOptimizer(Context context, boolean state) 
+     {
+         context.set(ARQ.optimization, state) ;
+     }
+     
+     /** 
+      *  Context key controlling whether the main query engine applies the
+      *  default optimization transformations.
+      */  
+     public static final Symbol optimization = ARQConstants.allocSymbol("optimization") ;
+     
+     /** 
+      *  Context key controlling whether the main query engine flattens simple paths
+      *  (e.g. <tt>?x :p/:q ?z => ?x :p ?.0 . ?.0 ?q ?z</tt>)   
+      *  <p>Default is "true"
+      */  
+     public static final Symbol optPathFlatten = ARQConstants.allocSymbol("optPathFlatten") ;
+     
+     /** 
+      *  Context key controlling whether the main query engine moves filters to the "best" place.
+      *  Default is "true" - filter placement is done.
+      */  
+     public static final Symbol optFilterPlacement = ARQConstants.allocSymbol("optFilterPlacement") ;
+ 
+     /** 
+      *  Context key controlling whether to do filter placement within BGP and quad blocks.
+      *  Modies the effect of optFilterPlacement. 
+      *  Default is "true" - filter placement is pushed into BGPs.
+      */  
+     public static final Symbol optFilterPlacementBGP = ARQConstants.allocSymbol("optFilterPlacementBGP") ;
+     
+     /** 
+      *  Context key controlling whether the main query engine moves filters to the "best" place using 
+      *  the more limited and conservative strategy which does not place as many filters
+      *  Must be explicitly set "true" to operate.
+      *  Filter placement, via {@link #optFilterPlacement} must also be active (which it is by default).
+      * @see #optFilterPlacement
+      */ 
+     public static final Symbol optFilterPlacementConservative = ARQConstants.allocSymbol("optFilterPlacementConservative") ;
+ 
+     /** 
+      *  Context key controlling whether an ORDER BY-LIMIT query is done avoiding total sort using an heap.
+      *  Default is "true" - total sort if avoided by default when ORDER BY is used with LIMIT.
+      */  
+     public static final Symbol optTopNSorting = ARQConstants.allocSymbol("optTopNSorting") ;
+     
+     /** 
+      *  Context key controlling whether a DISTINCT-ORDER BY query is done by replacing the distinct with a reduced.
+      *  Default is "true" - the reduced operator does not need to keep a data structure with all previously seen bindings.
+      */  
+     public static final Symbol optDistinctToReduced = ARQConstants.allocSymbol("optDistinctToReduced") ;
+     
+     /**
+      * Context key controlling whether a DISTINCT-ORDER BY query is done by applying the ORDER BY after the DISTINCT
+      * when default SPARQL semantics usually mean ORDER BY applies before DISTINCT.  This optimization applies only
+      * in a subset of cases unlike the more general {@link #optDistinctToReduced} optimization.
+      * <p>
+      * See {@link TransformOrderByDistinctApplication} for more discussion on exactly when this may apply
+      * </p>
+      */
+     public static final Symbol optOrderByDistinctApplication = ARQConstants.allocSymbol("optOrderByDistinctApplication");
+ 
+     /** 
+      *  Context key controlling whether the standard optimizer applies
+      *  optimizations to equalities in FILTERs.
+      *  This optimization is conservative - it does not take place if
+      *  there is a potential risk of changing query semantics. 
+      */  
+     public static final Symbol optFilterEquality = ARQConstants.allocSymbol("optFilterEquality") ;
+     
+     /**
+      * Context key controlling whether the standard optimizer applies 
+      * optimizations to inequalities in FILTERs
+      * This optimization is conservative - it does not take place if
+      * there is a potential risk of changing query semantics
+      */
+     public static final Symbol optFilterInequality = ARQConstants.allocSymbol("optFilterInequality") ;
+     
+     /**
+      * Context key controlling whether the standard optimizer applies optimizations to implicit joins in FILTERs.
+      * This optimization is conservative - it does not take place if there is a potential risk of changing query semantics.
+      */
+     public static final Symbol optFilterImplicitJoin = ARQConstants.allocSymbol("optFilterImplicitJoin");
+     
+     /**
+      * Context key controlling whether the standard optimizer applies optimizations to implicit left joins.
+      * This optimization is conservative - it does not take place if there is a potential risk of changing query semantics.
+      */
+     public static final Symbol optImplicitLeftJoin = ARQConstants.allocSymbol("optImplicitLeftJoin");
+ 
+     /** 
+      *  Context key for a declaration that xsd:strings and simple literals are
+      *  different in the storage.  They are the same value in a memory store.
+      *  When in doubt, xsd:strings are assumed to be the same value as simple literals   
+      */  
+     public static final Symbol optTermStrings = ARQConstants.allocSymbol("optTermStrings") ;
+     
+     /**
+      * Context key controlling whether the standard optimizer applies constant folding to expressions
+      */
+     public static final Symbol optExprConstantFolding = ARQConstants.allocSymbol("optExprConstantFolding");
+ 
+     /** 
+      *  Context key controlling whether the standard optimizer applies
+      *  optimizations to conjunctions (&&) in filters.
+      */  
+     public static final Symbol optFilterConjunction = ARQConstants.allocSymbol("optFilterConjunction") ;
+ 
+     /** 
+      *  Context key controlling whether the standard optimizer applies
+      *  optimizations to IN and NOT IN.
+      */  
+     public static final Symbol optFilterExpandOneOf = ARQConstants.allocSymbol("optFilterExpandOneOf") ;
+ 
+     /** 
+      *  Context key controlling whether the standard optimizer applies
+      *  optimizations to disjunctions (||) in filters.
+      */  
+     public static final Symbol optFilterDisjunction = ARQConstants.allocSymbol("optFilterDisjunction") ;
+     
+     /**
+      * Context key controlling whether the standard optimizer applies table empty promotion
+      */
+     public static final Symbol optPromoteTableEmpty = ARQConstants.allocSymbol("optPromoteTableEmpty") ;
+     
+     /**
+      * Context key controlling whether the standard optimizer applies optimizations to the evaluation
+      * of joins to favour index joins wherever possible
+      */
+     public static final Symbol optIndexJoinStrategy = ARQConstants.allocSymbol("optIndexJoinStrategy");
+     
+     /**
++     * Context key controlling whether the standard optimizer applies optimizations where by some
++     * assignments may be eliminated/inlined into the operators where their values are used only once
++     */
++    public static final Symbol optInlineAssignments = ARQConstants.allocSymbol("optInlineAssignments");
++    
++    /**
++     * Context key controlling whether the standard optimizer aggressively inlines assignments whose
++     * values are used only once into operators where those expressions may be evaluated multiple times e.g. order
++     */
++    public static final Symbol optInlineAssignmentsAggressive = ARQConstants.allocSymbol("optInlineAssignmentsAggressive");
++    
++    /**
+      * Context key controlling whether the standard optimizater applies optimizations to joined BGPs to
+      * merge them into single BGPs.
+      * By default, this transformation is applied.
+      */
+     public static final Symbol optMergeBGPs = ARQConstants.allocSymbol("optMergeBGPs");
+     
+     /**
+      * Context key controlling whether the standard optimizater applies the optimization
+      * to combine stacks of (extend) into one compound operation.  Ditto (assign). 
+      * By default, this transformation is applied.
+      */
+     public static final Symbol optMergeExtends = ARQConstants.allocSymbol("optMergeExtends");
+ 
+     /** 
+      *  Context key controlling whether the main query engine processes property functions.
+      *  
+      */  
+     public static final Symbol propertyFunctions = ARQConstants.allocSymbol("propertyFunctions") ;
+     
+     /**
+      * Expression evaluation without extension types (e.g. xsd:date, language tags)
+      */
+     public static final Symbol extensionValueTypes = ARQConstants.allocSymbol("extensionValueTypesExpr") ;
+ 
+     /**
+      * Generate the ToList operation in the algebra (as ARQ is stream based, ToList is a non-op).
+      * Default is not to do so.  Strict mode will also enable this.
+      */
+     public static final Symbol generateToList = ARQConstants.allocSymbol("generateToList") ;
+ 
+     /** Set strict mode, including expression evaluation */
+     public static void setStrictMode() { setStrictMode(ARQ.getContext()) ; }
+     
+     /** Set strict mode for a given Context.
+      *  
+      *  Does not influence expression evaluation because NodeValues
+      *  are controlled globally, not per context.
+      */
+     public static void setStrictMode(Context context)
+     {
+         SystemARQ.StrictDateTimeFO      = true ;
+         SystemARQ.ValueExtensions       = false ;
+         SystemARQ.EnableRomanNumerals   = false ;
+         
+         context.set(optimization,                   false) ;
+         context.set(hideNonDistiguishedVariables,   true) ;
+         context.set(strictSPARQL,                   true) ;
+         context.set(enablePropertyFunctions,        false) ;
+         
+         context.set(extensionValueTypes,            false) ;
+         context.set(constantBNodeLabels,            false) ;
+         context.set(generateToList,                 true) ;
+         context.set(regexImpl,                      xercesRegex) ;
+         
+         //context.set(filterPlacement,            false) ;
+     }
+ 
+     public static boolean isStrictMode()       { return ARQ.getContext().isTrue(strictSPARQL) ; }
+     
+     /** Set normal mode, including expression evaluation */
+     public static void setNormalMode() {
+         SystemARQ.StrictDateTimeFO      = false ;
+         SystemARQ.ValueExtensions       = true ;
+         SystemARQ.EnableRomanNumerals   = false ;
+         setNormalMode(ARQ.getContext()) ; 
+     }
+         
+     /** Explicitly set the values for normal operation.
+      *  Does not influence expression evaluation.
+      */
+     public static void setNormalMode(Context context)
+     {
+         context.set(optimization,                   true) ;
+         context.set(hideNonDistiguishedVariables,   false) ;
+         context.set(strictSPARQL,                   false) ;
+         context.set(enablePropertyFunctions,        true) ;
+         
+         context.set(extensionValueTypes,            true) ;
+         context.set(constantBNodeLabels,            true) ;
+         context.set(generateToList,                 false) ;
+         context.set(regexImpl,                      javaRegex) ;
+     }
+     
+     // ----------------------------------
+     
+     /** The root package name for ARQ */   
+     public static final String PATH         = "org.apache.jena.arq";
+    
+     static private String metadataLocation  = "org/apache/jena/arq/arq-properties.xml" ;
+ 
+     static private Metadata metadata        = new Metadata(metadataLocation) ;
+     
+     /** The product name */   
+     public static final String NAME         = "ARQ";
+    
+     /** The full name of the current ARQ version */   
+     public static final String VERSION      = metadata.get(PATH+".version", "unknown") ;
+    
+     /** The date and time at which this release was built */   
+     public static final String BUILD_DATE   = metadata.get(PATH+".build.datetime", "unset") ;
+     
+     // A correct way to manage without synchonized using the double checked locking pattern.
+     //   http://en.wikipedia.org/wiki/Double-checked_locking
+     //   http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html 
+     private static volatile boolean initialized = false ;
+     private static final Object initLock = new Object() ;
+ 
+     private static Context globalContext = null ;
+ 
+     /** Ensure things have started - applications do not need call this.
+      * The method is public so any part of ARQ can call it.
+      * Note the final static initializer call 
+      */
+     
+     public static void init()
+     { 
+         if ( initialized )
+             return ;
+         synchronized(initLock)
+         {
+             if ( initialized )
+                 return ;
+             initialized = true ;
+             globalContext = defaultSettings() ;
+             
+             RIOT.init() ;
+             StageBuilder.init() ;
+             ARQMgt.init() ;         // After context and after PATH/NAME/VERSION/BUILD_DATE are set
+             MappingRegistry.addPrefixMapping(ARQ.arqSymbolPrefix, ARQ.arqParamNS) ;
+             
+             // This is the pattern for any subsystem to register. 
+             SystemInfo sysInfo = new SystemInfo(ARQ.arqIRI, ARQ.PATH, ARQ.VERSION, ARQ.BUILD_DATE) ;
+             SystemARQ.registerSubSystem(sysInfo) ;
+ 
+             // Register RIOT details here, not earlier, to avoid
+             // initialization loops with RIOT.init() called directly.
+             RIOT.register() ;
+         }
+     }
+     
+     // Force a call
+     static { init() ; }
+     
+     /* Side effects */
+     private static Context defaultSettings()
+     {
+         SystemARQ.StrictDateTimeFO      = false ;
+         SystemARQ.ValueExtensions       = true ;
+         SystemARQ.EnableRomanNumerals   = false ; 
+ 
+         Context context = new Context() ;
+         context.unset(optimization) ;
+         //context.set(hideNonDistiguishedVariables, true) ;
+         context.set(strictSPARQL,                  false) ; 
+         context.set(constantBNodeLabels,           true) ;
+         context.set(enablePropertyFunctions,       true) ;
+         context.set(regexImpl,                     javaRegex) ;
+ 
+         return context ; 
+     }
+ 
+     public static Context getContext()
+     { 
+         //ARQ.init() ;
+         return globalContext ;
+     }
+     
+     // Convenience call-throughs
+     public static void set(Symbol symbol, boolean value)  { getContext().set(symbol, value) ; }
+     public static void setTrue(Symbol symbol)             { getContext().setTrue(symbol) ; }
+     public static void setFalse(Symbol symbol)            { getContext().setFalse(symbol) ; }
+     public static void unset(Symbol symbol)               { getContext().unset(symbol) ; }
+     public static boolean isTrue(Symbol symbol)           { return getContext().isTrue(symbol) ; }
+     public static boolean isFalse(Symbol symbol)          { return getContext().isFalse(symbol) ; }
+     public static boolean isTrueOrUndef(Symbol symbol)    { return getContext().isTrueOrUndef(symbol) ; }
+     public static boolean isFalseOrUndef(Symbol symbol)   { return getContext().isFalseOrUndef(symbol) ; }
+ 
+ }

http://git-wip-us.apache.org/repos/asf/jena/blob/9d684173/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
index 0000000,342b50d..034e233
mode 000000,100644..100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
@@@ -1,0 -1,300 +1,304 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one
+  * or more contributor license agreements.  See the NOTICE file
+  * distributed with this work for additional information
+  * regarding copyright ownership.  The ASF licenses this file
+  * to you under the Apache License, Version 2.0 (the
+  * "License"); you may not use this file except in compliance
+  * with the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.jena.sparql.algebra.optimize;
+ 
+ import org.apache.jena.query.ARQ ;
+ import org.apache.jena.sparql.ARQConstants ;
+ import org.apache.jena.sparql.algebra.* ;
+ import org.apache.jena.sparql.algebra.op.OpLabel ;
+ import org.apache.jena.sparql.engine.ExecutionContext ;
+ import org.apache.jena.sparql.util.Context ;
+ import org.apache.jena.sparql.util.Symbol ;
+ import org.slf4j.Logger ;
+ import org.slf4j.LoggerFactory ;
+ 
+ 
+ public class Optimize implements Rewrite
+ {
+     static private Logger log = LoggerFactory.getLogger(Optimize.class) ;
+ 
+     // A small (one slot) registry to allow plugging in an alternative optimizer
+     public interface RewriterFactory { Rewrite create(Context context) ; }
+     
+     // ----    
+     public static RewriterFactory noOptimizationFactory = new RewriterFactory()
+     {
+         @Override
+         public Rewrite create(Context context)
+         {
+             return new Rewrite() {
+ 
+                 @Override
+                 public Op rewrite(Op op)
+                 {
+                     return op ;
+                 }} ;
+         }} ;
+         
+     public static RewriterFactory stdOptimizationFactory = new RewriterFactory()
+     {
+         @Override
+         public Rewrite create(Context context)
+         {
+             return new Optimize(context) ;
+         }
+     } ;
+     
+     // Set this to a different factory implementation to have a different general optimizer.  
+     private static RewriterFactory factory = stdOptimizationFactory ;
+     
+     // ----        
+         
+     public static Op optimize(Op op, ExecutionContext execCxt)
+     {
+         return optimize(op, execCxt.getContext()) ;
+     }
+ 
+     // The execution-independent optimizations
+     public static Op optimize(Op op, Context context)
+     {
+         Rewrite opt = decideOptimizer(context) ;
+         return opt.rewrite(op) ;
+     }
+ 
+     /** Set the global optimizer factory to one that does nothing */
+     public static void noOptimizer()
+     {
+         setFactory(noOptimizationFactory) ;
+     }
+ 
+     static private Rewrite decideOptimizer(Context context)
+     {
+         RewriterFactory f = (RewriterFactory)context.get(ARQConstants.sysOptimizerFactory) ;
+         if ( f == null )
+             f = factory ;
+         if ( f == null )
+             f = stdOptimizationFactory ;    // Only if default 'factory' gets lost.
+         return f.create(context) ;
+     }
+ 
+     
+     /** Globably set the factory for making optimizers */ 
+     public static void setFactory(RewriterFactory aFactory)
+     { factory = aFactory ; }
+ 
+     /** Get the global factory for making optimizers */ 
+     public static RewriterFactory getFactory()
+     { return factory ; }
+     
+     // ---- The object proper for the standard optimizations
+     
+     private final Context context ;
+     private Optimize(ExecutionContext execCxt)
+     {
+         this(execCxt.getContext()) ;
+     }
+     
+     private Optimize(Context context)
+     {
+         this.context = context ;
+     }
+ 
+     /** Alternative name for compatibility only */
+     public static final Symbol filterPlacementOldName = ARQConstants.allocSymbol("filterPlacement") ;
+     
+     @Override
+     public Op rewrite(Op op)
+     {
+         // Record optimizer
+         if ( context.get(ARQConstants.sysOptimizer) == null )
+             context.set(ARQConstants.sysOptimizer, this) ;
+         
+         // Old name, new name fixup.
+         if ( context.isDefined(filterPlacementOldName) ) 
+         {
+             if ( context.isUndef(ARQ.optFilterPlacement) )
+                 context.set(ARQ.optFilterPlacement, context.get(filterPlacementOldName)) ;
+         }
+         
+         if ( false )
+         {
+             // Removal of "group of one" join (AKA SPARQL "simplification") 
+             // is done during algebra generation in AlgebraGenerator
+             op = apply("Simplify", new TransformSimplify(), op) ;
+             op = apply("Delabel", new TransformRemoveLabels(), op) ;
+         }
+ 
+         // ** TransformScopeRename::
+         // This is a requirement for the linearization execution that the default
+         // ARQ query engine uses where possible.  
+         // This transformation must be done (e.g. by QueryEngineBase) if no other optimization is done. 
+         op = TransformScopeRename.transform(op) ;
+         
+         // Prepare expressions.
+         OpWalker.walk(op, new OpVisitorExprPrepare(context)) ;
+         
+         // Convert paths to triple patterns if possible.
+         if ( context.isTrueOrUndef(ARQ.optPathFlatten) ) {
+             op = apply("Path flattening", new TransformPathFlattern(), op) ;
+             // and merge adjacent BGPs (part 1)
+             if ( context.isTrueOrUndef(ARQ.optMergeBGPs) )
+                 op = apply("Merge BGPs", new TransformMergeBGPs(), op) ;
+         }
+ 
+         // Expression constant folding
+         if ( context.isTrueOrUndef(ARQ.optExprConstantFolding) )
+             op = Transformer.transform(new TransformCopy(), new ExprTransformConstantFold(), op);
+         
+         // Need to allow subsystems to play with this list.
+         
+         if ( context.isTrueOrUndef(ARQ.propertyFunctions) )
+             op = apply("Property Functions", new TransformPropertyFunction(context), op) ;
+ 
+         if ( context.isTrueOrUndef(ARQ.optFilterConjunction) )
+             op = apply("filter conjunctions to ExprLists", new TransformFilterConjunction(), op) ;
+ 
+         if ( context.isTrueOrUndef(ARQ.optFilterExpandOneOf) )
+             op = apply("Break up IN and NOT IN", new TransformExpandOneOf(), op) ;
+ 
+         // Apply some general purpose filter transformations
+                 
+         if ( context.isTrueOrUndef(ARQ.optFilterImplicitJoin) )
+             op = apply("Filter Implicit Join", new TransformFilterImplicitJoin(), op);
+         
+         if ( context.isTrueOrUndef(ARQ.optImplicitLeftJoin) )
+             op = apply("Implicit Left Join", new TransformImplicitLeftJoin(), op);
+                 
+         if ( context.isTrueOrUndef(ARQ.optFilterDisjunction) )
+             op = apply("Filter Disjunction", new TransformFilterDisjunction(), op) ;
+         
+         // Some ORDER BY-LIMIT N queries can be done more efficiently by only recording
+         // the top N items, so a full sort is not needed.
+         if ( context.isTrueOrUndef(ARQ.optTopNSorting) )
+             op = apply("TopN Sorting", new TransformTopN(), op) ;
+         
+         // ORDER BY+DISTINCT optimizations
+         // We apply the one that changes evaluation order first since when it does apply it will give much
+         // better performance than just transforming DISTINCT to REDUCED
+         
+         if ( context.isTrueOrUndef(ARQ.optOrderByDistinctApplication) )
+             op = apply("Apply DISTINCT prior to ORDER BY where possible", new TransformOrderByDistinctApplication(), op);
+ 
+         // Transform some DISTINCT to REDUCED, slightly more liberal transform that ORDER BY+DISTINCT application
+         // Reduces memory consumption.
+         if ( context.isTrueOrUndef(ARQ.optDistinctToReduced) )
+             op = apply("Distinct replaced with reduced", new TransformDistinctToReduced(), op) ;
+         
+         // Find joins/leftJoin that can be done by index joins (generally preferred as fixed memory overhead).
+         if ( context.isTrueOrUndef(ARQ.optIndexJoinStrategy) )
+             op = apply("Index Join strategy", new TransformJoinStrategy(), op) ;
+         
+         // Place filters close to where their dependency variables are defined.
+         // This prunes the output of that step as early as possible.
+         // If done before TransformJoinStrategy, you can get two applications
+         // of a filter in a (sequence) from each half of a (join).  This is harmless,
+         // because filters are generally cheap, but it looks a bit bad.
+         if ( context.isTrueOrUndef(ARQ.optFilterPlacement) ) {
+             if ( context.isTrue(ARQ.optFilterPlacementConservative))
+                 op = apply("Filter Placement (conservative)", new TransformFilterPlacementConservative(), op) ;
+             else { 
+                 // Whether to push into BGPs 
+                 boolean b = context.isTrueOrUndef(ARQ.optFilterPlacementBGP) ;
+                 op = apply("Filter Placement", new TransformFilterPlacement(b), op) ;
+             }
+         }
+         
+         // Replace suitable FILTER(?x = TERM) with (assign) and write the TERm for ?x in the pattern.    
+         // Apply (possible a second time) after FILTER placement as it can create new possibilities.
+         // See JENA-616.
+         if ( context.isTrueOrUndef(ARQ.optFilterEquality) )
+             op = apply("Filter Equality", new TransformFilterEquality(), op) ;
+                 
+         // Replace suitable FILTER(?x != TERM) with (minus (original) (table)) where the table contains
+         // the candidate rows to be eliminated
+         // Off by default due to minimal performance difference
+         if ( context.isTrue(ARQ.optFilterInequality) )
+             op = apply("Filter Inequality", new TransformFilterInequality(), op);
+         
++        // Eliminate/Inline assignments where possible
++        if ( context.isTrue(ARQ.optInlineAssignments) )
++            op = TransformEliminateAssignments.eliminate(op, context.isTrue(ARQ.optInlineAssignmentsAggressive));
++        
+         // Promote table empty as late as possible since this will only be produced by other 
+         // optimizations and never directly from algebra generation
+         if ( context.isTrueOrUndef(ARQ.optPromoteTableEmpty) )
+             op = apply("Table Empty Promotion", new TransformPromoteTableEmpty(), op) ;
+ 
+         // Merge adjacent BGPs
+         if ( context.isTrueOrUndef(ARQ.optMergeBGPs) )
+             op = apply("Merge BGPs", new TransformMergeBGPs(), op) ;
+         
+         // Merge (extend) and (assign) stacks
+         if ( context.isTrueOrUndef(ARQ.optMergeExtends) )
+             op = apply("Combine BIND/LET", new TransformExtendCombine(), op) ;
+         
+         // Mark
+         if ( false )
+             op = OpLabel.create("Transformed", op) ;
+         return op ;
+     }
+     
+     public static Op apply(Transform transform, Op op)
+     {
+         Op op2 = Transformer.transformSkipService(transform, op) ;
+         if ( op2 != op )
+             return op2 ; 
+         return op ;
+     }
+     
+     public static Op apply(String label, Transform transform, Op op)
+     {
+         // Use this to apply inside NOT EXISTS and EXISTS 
+         // Transform transform2 = new TransformApplyInsideExprFunctionOp(transform) ;
+         // Remember there is an outer substitue to the NOT EXISTS operation. 
+ 
+         //Transform transform2 = new TransformApplyInsideExprFunctionOp(transform) ;
+         
+         Op op2 = Transformer.transformSkipService(transform, op) ;
+         
+         final boolean debug = false ;
+         
+         if ( debug )
+         {
+             if ( label != null && log.isInfoEnabled() )
+                     log.info("Transform: "+label) ;
+             if ( op == op2 ) 
+             {
+                 if ( log.isInfoEnabled() ) 
+                     log.info("No change (==)") ;
+                 return op2 ;
+             }
+ 
+             if ( op.equals(op2) ) 
+             {
+                 if ( log.isInfoEnabled() )
+                     log.info("No change (equals)") ;
+                 return op2 ;
+             }
+             if ( log.isInfoEnabled() )
+             {
+                 log.info("\n"+op.toString()) ;
+                 log.info("\n"+op2.toString()) ;
+             }
+         }
+         if ( op2 != op )
+             return op2 ; 
+         return op ;
+     }
+ }

http://git-wip-us.apache.org/repos/asf/jena/blob/9d684173/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TS_Optimization.java
----------------------------------------------------------------------
diff --cc jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TS_Optimization.java
index 0000000,9099486..e921f47
mode 000000,100644..100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TS_Optimization.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TS_Optimization.java
@@@ -1,0 -1,40 +1,41 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one
+  * or more contributor license agreements.  See the NOTICE file
+  * distributed with this work for additional information
+  * regarding copyright ownership.  The ASF licenses this file
+  * to you under the Apache License, Version 2.0 (the
+  * "License"); you may not use this file except in compliance
+  * with the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.jena.sparql.algebra.optimize;
+ 
+ import org.junit.runner.RunWith ;
+ import org.junit.runners.Suite ;
+ 
+ @RunWith(Suite.class)
+ @Suite.SuiteClasses( {
+     TestReorderBGP.class
+     , TestVarRename.class
+     , TestOptDistinctReduced.class
+     , TestSemanticEquivalence.class
+     , TestTransformConstantFolding.class
+     , TestTransformFilters.class
+     , TestTransformFilterPlacement.class
+     , TestTransformMergeBGPs.class
+     , TestTransformPromoteTableEmpty.class
++    , TestTransformEliminateAssignments.class
+     , TestTransformTopN.class
+     , TestOptimizer.class
+ })
+ 
+ public class TS_Optimization
+ {}


[05/26] jena git commit: Eliminate single use assignments referenced in ORDER BY (JENA-780)

Posted by rv...@apache.org.
Eliminate single use assignments referenced in ORDER BY (JENA-780)

This commit improves TransformEliminateAssignments to be able to
eliminate single use assignments that are used only in ORDER BY sort
conditions


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/62dfb5aa
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/62dfb5aa
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/62dfb5aa

Branch: refs/heads/jena2
Commit: 62dfb5aa099ccd121a6c798a0e12b63d179c6dab
Parents: 79f8765
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Sep 30 10:34:53 2014 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Sep 30 10:34:53 2014 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 57 +++++++++++++++++++-
 .../TestTransformEliminateAssignments.java      | 17 ++++++
 2 files changed, 73 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/62dfb5aa/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index d24c500..c9bdb7c 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -22,9 +22,12 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.jena.atlas.lib.CollectionUtils;
+
+import com.hp.hpl.jena.query.SortCondition;
 import com.hp.hpl.jena.sparql.algebra.Op;
 import com.hp.hpl.jena.sparql.algebra.OpVisitor;
 import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
@@ -140,9 +143,13 @@ public class TransformEliminateAssignments extends TransformCopy {
 
     @Override
     public Op transform(OpExtend opExtend, Op subOp) {
+        // No point tracking assignments if not in a projection as we can't
+        // possibly eliminate them without a projection to hide the fact that
+        // the assigned value is unnecessary or only used once
         if (!this.tracker.insideProjection())
             return super.transform(opExtend, subOp);
 
+        // Track the assignments for future reference
         this.tracker.putAssignments(opExtend.getVarExprList());
 
         // See if there are any assignments we can eliminate entirely i.e. those
@@ -165,21 +172,69 @@ public class TransformEliminateAssignments extends TransformCopy {
 
         VarExprList modified = new VarExprList();
         for (Var var : assignments.getVars()) {
+            // If an assignment is used more than once then it must be preserved
+            // for now
             if (this.tracker.getUsageCount(var) > 1)
                 modified.add(var, assignments.getExpr(var));
         }
 
+        // If all assignments are used more than once then there are no changes
+        // and we return null
         if (modified.size() == assignments.size())
             return null;
+
         return modified;
     }
 
     @Override
     public Op transform(OpOrder opOrder, Op subOp) {
-        // TODO Auto-generated method stub
+        if (!this.isApplicable())
+            return super.transform(opOrder, subOp);
+
+        // See what vars are used in the sort conditions
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition cond : opOrder.getConditions()) {
+            ExprVars.varsMentioned(vars, cond.getExpression());
+        }
+
+        // Are any of these vars single usage?
+        List<SortCondition> conditions = null;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this filter
+            if (this.tracker.getUsageCount(var) == 2 && this.tracker.getAssignments().containsKey(var)) {
+                // Can go back and eliminate that assignment
+                subOp = Transformer.transform(
+                        new TransformRemoveAssignment(var, this.tracker.getAssignments().get(var)), subOp);
+                // Replace the variable usage with the expression within the sort conditions
+                conditions = processConditions(opOrder.getConditions(), conditions, var);
+                this.tracker.getAssignments().remove(var);
+            }
+        }
+
+        // Create a new order if we've substituted any expressions
+        if (conditions != null) {
+            return new OpOrder(subOp, conditions);
+        }
+
         return super.transform(opOrder, subOp);
     }
 
+    private List<SortCondition> processConditions(List<SortCondition> baseConditions,
+            List<SortCondition> processedConditions, Var var) {
+        List<SortCondition> inputConditions = processedConditions != null ? processedConditions : baseConditions;
+        List<SortCondition> outputConditions = new ArrayList<>();
+
+        for (SortCondition cond : inputConditions) {
+            Expr e = cond.getExpression();
+            e = ExprTransformer.transform(new ExprTransformSubstitute(var, this.tracker.getAssignments().get(var)), e);
+            outputConditions.add(new SortCondition(e, cond.getDirection()));
+        }
+       
+        return outputConditions;
+    }
+
     @Override
     public Op transform(OpTopN opTop, Op subOp) {
         // TODO Auto-generated method stub

http://git-wip-us.apache.org/repos/asf/jena/blob/62dfb5aa/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index ff8b65f..2f2ced9 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -92,6 +92,23 @@ public class TestTransformEliminateAssignments {
              "    (table unit)))");
         //@formatter:on
     }
+    
+    @Test
+    public void eliminate_single_use_extend_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (order (?x)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+             "(project (?y)",
+             "  (order (true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
 
     @Test
     public void single_use_extend_unchanged_01() {


[12/26] jena git commit: Further work on eliminating/inlining assignments (JENA-780)

Posted by rv...@apache.org.
Further work on eliminating/inlining assignments (JENA-780)

- Support elimination/inlining to OpGroup and OpTopN
- Only eliminate/inline when expressions are stable
- Only inline into sort conditions if the expression is constant
- Expand test coverage


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/bdcf8a60
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/bdcf8a60
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/bdcf8a60

Branch: refs/heads/master
Commit: bdcf8a6056092b04bf644607b6176afd0e834544
Parents: 57cf5dd
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 14:37:58 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 14:39:44 2015 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 193 ++++++++++++++++---
 .../optimize/TransformRemoveAssignment.java     |  18 ++
 .../algebra/optimize/VariableUsagePopper.java   |  18 ++
 .../TestTransformEliminateAssignments.java      | 134 ++++++++++---
 4 files changed, 317 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/bdcf8a60/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index c9bdb7c..91dc435 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -44,45 +44,95 @@ import com.hp.hpl.jena.sparql.algebra.op.OpTopN;
 import com.hp.hpl.jena.sparql.core.Var;
 import com.hp.hpl.jena.sparql.core.VarExprList;
 import com.hp.hpl.jena.sparql.expr.Expr;
+import com.hp.hpl.jena.sparql.expr.ExprAggregator;
+import com.hp.hpl.jena.sparql.expr.ExprLib;
 import com.hp.hpl.jena.sparql.expr.ExprList;
+import com.hp.hpl.jena.sparql.expr.ExprTransform;
 import com.hp.hpl.jena.sparql.expr.ExprTransformSubstitute;
 import com.hp.hpl.jena.sparql.expr.ExprTransformer;
 import com.hp.hpl.jena.sparql.expr.ExprVars;
+import com.hp.hpl.jena.sparql.expr.NodeValue;
 
 /**
- * A transform that tries to remove unecessary assignments
+ * A transform that tries to in-line/eliminate assignments
  * <p>
- * There are two classes of assignments that we can try and remove:
+ * There are two classes of assignments that we can try and in-line/eliminate:
  * </p>
  * <ol>
  * <li>Assignments where the assigned variable is used only once in a subsequent
- * assignment</li>
- * <li>Assignments where the assigned value is never used elsewhere</li>
+ * assignment can be in-lined</li>
+ * <li>Assignments where the assigned value is never used elsewhere can be
+ * eliminated</li>
  * </ol>
  * <p>
  * Both of these changes can only happen inside of projections as otherwise we
  * have to assume that the user may need the resulting variable and thus we
- * leave the assignment alone.
+ * leave the assignment alone. Assignments to be in-lined must also be
+ * deterministic i.e. moving their placement in the query and thus the possible
+ * solutions they might operate must not change their outputs. Whether an
+ * expression is deterministic is defined by {@link ExprLib#isStable(Expr)}.
+ * </p>
+ * <p>
+ * Assignments may be in-lined in the following places:
+ * </p>
+ * <ul>
+ * <li>Filter Expressions</li>
+ * <li>Bind and Select Expressions</li>
+ * <li>Group By Expressions</li>
+ * <li>Order By Expressions if aggressive in-lining is enabled</li>
+ * </ul>
+ * <p>
+ * In the case of order by we only in-line assignments when aggressive mode is
+ * set as the realities of order by are that expressions may be recomputed
+ * multiple times and so in-lining may actually hurt performance in those cases
+ * unless the expression to be in-lined is itself a constant.
  * </p>
- * 
  */
 public class TransformEliminateAssignments extends TransformCopy {
 
     public static Op eliminate(Op op) {
+        return eliminate(op, false);
+    }
+
+    public static Op eliminate(Op op, boolean aggressive) {
         AssignmentTracker tracker = new AssignmentTracker();
         AssignmentPusher pusher = new AssignmentPusher(tracker);
         AssignmentPopper popper = new AssignmentPopper(tracker);
-        Transform transform = new TransformEliminateAssignments(tracker, pusher, popper);
+        Transform transform = new TransformEliminateAssignments(tracker, pusher, popper, aggressive);
 
         return Transformer.transform(transform, op, pusher, popper);
     }
 
-    private OpVisitor before, after;
-    private AssignmentTracker tracker;
+    private final OpVisitor before, after;
+    private final AssignmentTracker tracker;
+    private final boolean aggressive;
 
     private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after) {
+        this(tracker, before, after, false);
+    }
+
+    private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after,
+            boolean aggressive) {
         this.tracker = tracker;
         this.before = before;
+        this.after = after;
+        this.aggressive = aggressive;
+    }
+
+    protected boolean canInline(Expr e) {
+        return ExprLib.isStable(e);
+    }
+
+    protected boolean shouldInline(Expr e) {
+        // Inline everything when being aggressive
+        if (this.aggressive)
+            return true;
+
+        if (e == null)
+            return false;
+
+        // If not being aggressive only inline if the expression is a constant
+        return e.isConstant() || e instanceof NodeValue;
     }
 
     protected boolean isApplicable() {
@@ -121,13 +171,12 @@ public class TransformEliminateAssignments extends TransformCopy {
             // Usage count will be 2 if we can eliminate the assignment
             // First usage is when it is introduced by the assignment and the
             // second is when it is used now in this filter
-            if (this.tracker.getUsageCount(var) == 2 && this.tracker.getAssignments().containsKey(var)) {
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
                 // Can go back and eliminate that assignment
-                subOp = Transformer.transform(
-                        new TransformRemoveAssignment(var, this.tracker.getAssignments().get(var)), subOp);
+                subOp = eliminateAssignment(subOp, var);
                 // Replace the variable usage with the expression
-                exprs = ExprTransformer.transform(
-                        new ExprTransformSubstitute(var, this.tracker.getAssignments().get(var)), exprs);
+                exprs = ExprTransformer.transform(new ExprTransformSubstitute(var, e), exprs);
                 this.tracker.getAssignments().remove(var);
                 modified = true;
             }
@@ -141,6 +190,14 @@ public class TransformEliminateAssignments extends TransformCopy {
         return super.transform(opFilter, subOp);
     }
 
+    private boolean hasAssignment(Var var) {
+        return this.tracker.getAssignments().containsKey(var);
+    }
+
+    private Expr getAssignExpr(Var var) {
+        return this.tracker.getAssignments().get(var);
+    }
+
     @Override
     public Op transform(OpExtend opExtend, Op subOp) {
         // No point tracking assignments if not in a projection as we can't
@@ -152,6 +209,9 @@ public class TransformEliminateAssignments extends TransformCopy {
         // Track the assignments for future reference
         this.tracker.putAssignments(opExtend.getVarExprList());
 
+        // TODO Could also eliminate assignments where the value is only used in
+        // a subsequent assignment
+
         // See if there are any assignments we can eliminate entirely i.e. those
         // where the assigned value is never used
         VarExprList assignments = processUnused(opExtend.getVarExprList());
@@ -203,11 +263,12 @@ public class TransformEliminateAssignments extends TransformCopy {
             // Usage count will be 2 if we can eliminate the assignment
             // First usage is when it is introduced by the assignment and the
             // second is when it is used now in this filter
-            if (this.tracker.getUsageCount(var) == 2 && this.tracker.getAssignments().containsKey(var)) {
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
                 // Can go back and eliminate that assignment
-                subOp = Transformer.transform(
-                        new TransformRemoveAssignment(var, this.tracker.getAssignments().get(var)), subOp);
-                // Replace the variable usage with the expression within the sort conditions
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression within the
+                // sort conditions
                 conditions = processConditions(opOrder.getConditions(), conditions, var);
                 this.tracker.getAssignments().remove(var);
             }
@@ -228,25 +289,113 @@ public class TransformEliminateAssignments extends TransformCopy {
 
         for (SortCondition cond : inputConditions) {
             Expr e = cond.getExpression();
-            e = ExprTransformer.transform(new ExprTransformSubstitute(var, this.tracker.getAssignments().get(var)), e);
+            e = ExprTransformer.transform(new ExprTransformSubstitute(var, getAssignExpr(var)), e);
             outputConditions.add(new SortCondition(e, cond.getDirection()));
         }
-       
+
         return outputConditions;
     }
 
     @Override
     public Op transform(OpTopN opTop, Op subOp) {
-        // TODO Auto-generated method stub
+        if (!this.isApplicable())
+            return super.transform(opTop, subOp);
+
+        // See what vars are used in the sort conditions
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition cond : opTop.getConditions()) {
+            ExprVars.varsMentioned(vars, cond.getExpression());
+        }
+
+        // Are any of these vars single usage?
+        List<SortCondition> conditions = null;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this filter
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
+                // Can go back and eliminate that assignment
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression within the
+                // sort conditions
+                conditions = processConditions(opTop.getConditions(), conditions, var);
+                this.tracker.getAssignments().remove(var);
+            }
+        }
+
+        // Create a new order if we've substituted any expressions
+        if (conditions != null) {
+            return new OpTopN(subOp, opTop.getLimit(), conditions);
+        }
+
         return super.transform(opTop, subOp);
     }
 
     @Override
     public Op transform(OpGroup opGroup, Op subOp) {
-        // TODO Auto-generated method stub
+        if (!this.isApplicable())
+            return super.transform(opGroup, subOp);
+
+        // See what vars are used in the filter
+        Collection<Var> vars = new ArrayList<>();
+        VarExprList exprs = new VarExprList(opGroup.getGroupVars());
+        List<ExprAggregator> aggs = new ArrayList<ExprAggregator>(opGroup.getAggregators());
+        for (Expr expr : exprs.getExprs().values()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+
+        // Are any of these vars single usage?
+        boolean modified = false;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this group by
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+                // Can go back and eliminate that assignment
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression in both the
+                // expressions and the aggregators
+                ExprTransform transform = new ExprTransformSubstitute(var, e);
+                exprs = processVarExprList(exprs, transform);
+                aggs = processAggregators(aggs, transform);
+                this.tracker.getAssignments().remove(var);
+                modified = true;
+            }
+        }
+
+        // Create a new group by if we've substituted any expressions
+        if (modified) {
+            return new OpGroup(subOp, exprs, aggs);
+        }
+
         return super.transform(opGroup, subOp);
     }
 
+    private Op eliminateAssignment(Op subOp, Var var) {
+        return Transformer.transform(new TransformRemoveAssignment(var, getAssignExpr(var)), subOp);
+    }
+
+    private VarExprList processVarExprList(VarExprList exprs, ExprTransform transform) {
+        VarExprList newExprs = new VarExprList();
+        for (Var v : exprs.getVars()) {
+            Expr e = exprs.getExpr(v);
+            Expr e2 = ExprTransformer.transform(transform, e);
+            newExprs.add(v, e2);
+        }
+        return newExprs;
+    }
+
+    private List<ExprAggregator> processAggregators(List<ExprAggregator> aggs, ExprTransform transform) {
+        List<ExprAggregator> newAggs = new ArrayList<ExprAggregator>();
+        for (ExprAggregator agg : aggs) {
+            ExprAggregator e2 = (ExprAggregator) ExprTransformer.transform(transform, agg);
+            newAggs.add(e2);
+        }
+        return newAggs;
+    }
+
     private static class AssignmentTracker extends VariableUsageTracker {
 
         private Map<Var, Expr> assignments = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/jena/blob/bdcf8a60/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
index dba9271..d7c08d4 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import com.hp.hpl.jena.sparql.algebra.Op;

http://git-wip-us.apache.org/repos/asf/jena/blob/bdcf8a60/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
index e73bfee..73e7ec9 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/jena/blob/bdcf8a60/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index 2f2ced9..163ce8c 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -32,13 +32,17 @@ import com.hp.hpl.jena.sparql.sse.SSE;
 public class TestTransformEliminateAssignments {
 
     private void test(String input, String... output) {
+        test(input, false, output);
+    }
+
+    private void test(String input, boolean aggressive, String... output) {
         Op original = SSE.parseOp(input);
-        test(original, output);
+        test(original, aggressive, output);
     }
 
-    private void test(Op original, String... output) {
+    private void test(Op original, boolean aggressive, String... output) {
         // Transform
-        Op actual = TransformEliminateAssignments.eliminate(original);
+        Op actual = TransformEliminateAssignments.eliminate(original, aggressive);
 
         // Check results
         if (output == null) {
@@ -51,17 +55,12 @@ public class TestTransformEliminateAssignments {
         }
     }
 
-    @SuppressWarnings("unused")
-    private void testNoChange(String input) {
-        test(input, (String[]) null);
-    }
-
     private void testNoChange(String... input) {
         test(StrUtils.strjoinNL(input), (String[]) null);
     }
 
     @Test
-    public void eliminate_single_use_extend_01() {
+    public void single_use_extend_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // However we must be inside a projection as otherwise the assigned
@@ -78,7 +77,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void eliminate_single_use_extend_02() {
+    public void single_use_extend_02() {
         // Assignment for ?y can be removed because it is never used
         // However we must be inside a projection as otherwise the assigned
         // variable would be visible and we couldn't eliminate the assignment
@@ -92,9 +91,9 @@ public class TestTransformEliminateAssignments {
              "    (table unit)))");
         //@formatter:on
     }
-    
+
     @Test
-    public void eliminate_single_use_extend_03() {
+    public void single_use_extend_03() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // However we must be inside a projection as otherwise the assigned
@@ -111,7 +110,92 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_unchanged_01() {
+    public void single_use_extend_complex_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // BUT we won't do this by default for complex expressions where they
+        // are used in a place where they could be evaluated multiple times
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (order (?x)",
+                                        "    (extend (?x (contains 'foo' 'bar'))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void single_use_extend_complex_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // BUT we won't do this by default for complex expressions where they
+        // are used in a place where they could be evaluated multiple times
+        // EXCEPT if we are doing aggressive in-lining
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (order (?x)",
+                                "    (extend (?x (contains 'foo' 'bar'))",
+                                "      (table unit))))"),
+             true,
+             "(project (?y)",
+             "  (order ((contains 'foo' 'bar'))",
+             "    (table unit)))");
+        //@formatter:on
+    }
+    
+    @Test
+    public void single_use_extend_unstable_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (rand))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+    
+    @Test
+    public void single_use_extend_unstable_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (uuid))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+    
+    @Test
+    public void single_use_extend_unstable_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (struuid))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+    
+    @Test
+    public void single_use_extend_unstable_04() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (bnode))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void single_use_extend_outside_projection_01() {
         // Cannot eliminate as there is no projection so the assigned variable
         // is visible even though in the algebra given it is used only once
         //@formatter:off
@@ -122,7 +206,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_unchanged_02() {
+    public void single_use_extend_outside_projection_02() {
         // Cannot eliminate as there is no projection so the assigned variable
         // is visible even though in the algebra given it is used only once
         //@formatter:off
@@ -133,26 +217,28 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void multi_use_extend_unchanged_01() {
+    public void multi_use_extend_01() {
         // As the assigned variable is used multiple times we leave the
         // assignment alone
         //@formatter:off
-        testNoChange("(filter (> (* ?x ?x) 16)",
-                     "  (extend (?x 3)",
-                     "    (table unit)))");
+        testNoChange("(project (?y)",
+                     "  (filter (> (* ?x ?x) 16)",
+                     "    (extend (?x 3)",
+                     "      (table unit))))");
         //@formatter:on
     }
 
     @Test
-    public void multi_use_extend_unchanged_02() {
+    public void multi_use_extend_02() {
         // Because the value of the assignment is used in multiple places we
         // leave the assignment alone
         //@formatter:off
-        testNoChange("(filter (exprlist ?x)",
-                     "  (join",
-                     "    (extend (?x true)",
-                     "      (table unit))",
-                     "    (bgp (triple ?x ?y ?z))))");
+        testNoChange("(project (?y)",
+                     "  (filter (exprlist ?x)",
+                     "    (join",
+                     "      (extend (?x true)",
+                     "        (table unit))",
+                     "      (bgp (triple ?x ?y ?z)))))");
         //@formatter:on
     }
 


[20/26] jena git commit: Merge branch 'master' into eliminate-assignments-jena3

Posted by rv...@apache.org.
Merge branch 'master' into eliminate-assignments-jena3


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9d684173
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9d684173
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9d684173

Branch: refs/heads/master
Commit: 9d6841737f9cd714eec35c2db0aa65b428245427
Parents: 39e4fd5 dbdfb92
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 16:24:10 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 16:24:10 2015 +0100

----------------------------------------------------------------------
 .gitignore                                      |    1 +
 LICENSE                                         |    6 +-
 apache-jena-libs/pom.xml                        |    6 +-
 apache-jena-osgi/jena-osgi-test/DEPENDENCIES    |   40 +
 apache-jena-osgi/jena-osgi-test/pom.xml         |   54 +-
 apache-jena-osgi/jena-osgi/pom.xml              |   27 +-
 .../src/main/resources/META-INF/NOTICE          |   45 +
 apache-jena-osgi/pom.xml                        |    7 +-
 apache-jena/LICENSE                             |    6 +-
 apache-jena/assembly-jena-zip.xml               |   32 -
 apache-jena/bin/tdbloader2worker                |    2 +-
 apache-jena/jena-log4j.properties               |    8 +-
 apache-jena/pom.xml                             |   35 +-
 jena-arq/Grammar/BinaryRDF.thrift               |    2 +-
 jena-arq/Grammar/JSON/json                      |   11 +-
 jena-arq/Grammar/JSON/json.jj                   |    2 +-
 jena-arq/Grammar/Notes                          |    8 +-
 jena-arq/Grammar/arq.jj                         |   28 +-
 jena-arq/Grammar/grammar                        |    2 +-
 jena-arq/Grammar/master.jj                      |   43 +-
 jena-arq/Grammar/sparql_11.jj                   |   28 +-
 jena-arq/Grammar/sse/.gitignore                 |    1 +
 jena-arq/Grammar/sse/grammar-sse                |    9 +-
 jena-arq/Grammar/sse/sse.jj                     |    5 +-
 jena-arq/ReleaseNotes.txt                       |  649 --
 jena-arq/bat/arq.bat                            |   13 -
 jena-arq/bat/check_root.bat                     |    7 -
 jena-arq/bat/make_classpath.bat                 |   55 -
 jena-arq/bat/qexpr.bat                          |   13 -
 jena-arq/bat/qparse.bat                         |   13 -
 jena-arq/bat/qtest.bat                          |   13 -
 jena-arq/bat/query.bat                          |   13 -
 jena-arq/bat/rset.bat                           |   13 -
 jena-arq/bat/sparql.bat                         |   13 -
 jena-arq/bin/arq                                |   12 -
 jena-arq/bin/arq_init                           |   36 -
 jena-arq/bin/arq_path                           |   16 -
 jena-arq/bin/arq_version                        |   12 -
 jena-arq/bin/infer                              |   20 -
 jena-arq/bin/iri                                |   20 -
 jena-arq/bin/json                               |   20 -
 jena-arq/bin/junit                              |   30 -
 jena-arq/bin/juuid                              |   14 -
 jena-arq/bin/langtag                            |   19 -
 jena-arq/bin/load                               |   12 -
 jena-arq/bin/make_classpath                     |   98 -
 jena-arq/bin/make_classpath_mvn                 |   68 -
 jena-arq/bin/nquads                             |   20 -
 jena-arq/bin/ntriples                           |   20 -
 jena-arq/bin/opexec                             |   12 -
 jena-arq/bin/opquery                            |   12 -
 jena-arq/bin/perftokens                         |   20 -
 jena-arq/bin/printtokens                        |   20 -
 jena-arq/bin/qexpr                              |   11 -
 jena-arq/bin/qparse                             |   11 -
 jena-arq/bin/qtest                              |   14 -
 jena-arq/bin/query                              |   12 -
 jena-arq/bin/rdflangtest                        |   19 -
 jena-arq/bin/rdfload                            |   12 -
 jena-arq/bin/rdfxml                             |   19 -
 jena-arq/bin/riot                               |   20 -
 jena-arq/bin/rset                               |    5 -
 jena-arq/bin/rsparql                            |   14 -
 jena-arq/bin/rupdate                            |   14 -
 jena-arq/bin/sparql                             |   19 -
 jena-arq/bin/sse                                |   12 -
 jena-arq/bin/ssequery                           |   12 -
 jena-arq/bin/trig                               |   20 -
 jena-arq/bin/turtle                             |   19 -
 jena-arq/bin/uparse                             |   12 -
 jena-arq/bin/update                             |   12 -
 jena-arq/bin/utf8                               |   20 -
 jena-arq/bin/wwwdec                             |   20 -
 jena-arq/bin/wwwenc                             |   20 -
 jena-arq/bin2/arq                               |   11 -
 jena-arq/bin2/infer                             |    6 -
 jena-arq/bin2/iri                               |    6 -
 jena-arq/bin2/json                              |    6 -
 jena-arq/bin2/juuid                             |    6 -
 jena-arq/bin2/nquads                            |   11 -
 jena-arq/bin2/ntriples                          |   11 -
 jena-arq/bin2/perftokens                        |    6 -
 jena-arq/bin2/printtokens                       |    6 -
 jena-arq/bin2/qexpr                             |   11 -
 jena-arq/bin2/qparse                            |   11 -
 jena-arq/bin2/qtest                             |   11 -
 jena-arq/bin2/query                             |   11 -
 jena-arq/bin2/rdfxml                            |   11 -
 jena-arq/bin2/riot                              |   11 -
 jena-arq/bin2/rset                              |   11 -
 jena-arq/bin2/rupdate                           |   11 -
 jena-arq/bin2/sparql                            |   11 -
 jena-arq/bin2/sse                               |   11 -
 jena-arq/bin2/ssequery                          |   11 -
 jena-arq/bin2/trig                              |   11 -
 jena-arq/bin2/turtle                            |   11 -
 jena-arq/bin2/uparse                            |   11 -
 jena-arq/bin2/update                            |   11 -
 jena-arq/bin2/utf8                              |    6 -
 jena-arq/bin2/wwwdec                            |   11 -
 jena-arq/bin2/wwwenc                            |   11 -
 jena-arq/binTemplates/arq_cmd                   |   21 -
 jena-arq/binTemplates/cmd_template              |    9 -
 jena-arq/binTemplates/riot_cmd                  |   21 -
 jena-arq/log4j.properties                       |    6 +-
 jena-arq/pom.xml                                |   26 +-
 .../src-examples/arq/examples/AlgebraEx.java    |   12 +-
 .../src-examples/arq/examples/AlgebraExec.java  |   41 +-
 jena-arq/src-examples/arq/examples/ExProg1.java |   22 +-
 jena-arq/src-examples/arq/examples/ExProg2.java |   30 +-
 .../arq/examples/ExQuerySelect1.java            |   16 +-
 .../arq/examples/ExQuerySelect2.java            |   17 +-
 .../arq/examples/ExampleDBpedia1.java           |    9 +-
 .../arq/examples/ExampleDBpedia2.java           |    9 +-
 .../arq/examples/ExampleDBpedia3.java           |   10 +-
 .../examples/aggregates/CustomAggregate.java    |   31 +-
 .../arq/examples/bgpmatching/OpExecutorAlt.java |   16 +-
 .../arq/examples/bgpmatching/StageAltMain.java  |   19 +-
 .../examples/bgpmatching/StageGeneratorAlt.java |   14 +-
 .../arq/examples/engine/MyQueryEngine.java      |   30 +-
 .../arq/examples/filter/classify.java           |    4 +-
 .../examples/propertyfunction/labelSearch.java  |   70 +-
 .../examples/propertyfunction/localname.java    |   32 +-
 .../examples/propertyfunction/uppercase.java    |    6 +-
 .../arq/examples/riot/ExRIOT_1.java             |    8 +-
 .../arq/examples/riot/ExRIOT_2.java             |   10 +-
 .../arq/examples/riot/ExRIOT_3.java             |    5 +-
 .../arq/examples/riot/ExRIOT_4.java             |    9 +-
 .../arq/examples/riot/ExRIOT_5.java             |   17 +-
 .../arq/examples/riot/ExRIOT_6.java             |    3 +-
 .../arq/examples/riot/ExRIOT_7.java             |    3 +-
 .../arq/examples/riot/ExRIOT_out1.java          |    3 +-
 .../arq/examples/riot/ExRIOT_out2.java          |    5 +-
 .../arq/examples/riot/ExRIOT_out3.java          |    9 +-
 .../update/UpdateExecuteOperations.java         |   20 +-
 .../arq/examples/update/UpdateProgrammatic.java |   17 +-
 .../arq/examples/update/UpdateReadFromFile.java |    9 +-
 jena-arq/src/main/java/arq/arq.java             |    2 +-
 jena-arq/src/main/java/arq/bindings.java        |    4 +-
 .../src/main/java/arq/cmd/CmdException.java     |   29 -
 jena-arq/src/main/java/arq/cmd/CmdUtils.java    |   34 -
 .../main/java/arq/cmd/TerminationException.java |   30 -
 jena-arq/src/main/java/arq/cmdline/Arg.java     |   69 -
 jena-arq/src/main/java/arq/cmdline/ArgDecl.java |   97 -
 .../src/main/java/arq/cmdline/ArgModule.java    |   26 -
 .../main/java/arq/cmdline/ArgModuleGeneral.java |   26 -
 jena-arq/src/main/java/arq/cmdline/ArgProc.java |   27 -
 .../src/main/java/arq/cmdline/CallbackHelp.java |   24 -
 .../main/java/arq/cmdline/CallbackVersion.java  |   24 -
 jena-arq/src/main/java/arq/cmdline/CmdARQ.java  |   26 +-
 .../src/main/java/arq/cmdline/CmdARQ_SSE.java   |    2 +-
 .../src/main/java/arq/cmdline/CmdArgModule.java |   68 -
 .../src/main/java/arq/cmdline/CmdGeneral.java   |   91 -
 .../src/main/java/arq/cmdline/CmdLineArgs.java  |  415 --
 .../src/main/java/arq/cmdline/CmdLineTest.java  |   39 -
 jena-arq/src/main/java/arq/cmdline/CmdMain.java |  117 -
 .../src/main/java/arq/cmdline/CmdUpdate.java    |   23 +-
 .../main/java/arq/cmdline/CommandLineBase.java  |  137 -
 .../src/main/java/arq/cmdline/ModAlgebra.java   |   13 +-
 .../src/main/java/arq/cmdline/ModAssembler.java |   16 +-
 jena-arq/src/main/java/arq/cmdline/ModBase.java |   23 -
 .../src/main/java/arq/cmdline/ModDataset.java   |   11 +-
 .../java/arq/cmdline/ModDatasetAssembler.java   |   18 +-
 .../java/arq/cmdline/ModDatasetGeneral.java     |   21 +-
 .../arq/cmdline/ModDatasetGeneralAssembler.java |    5 +-
 .../src/main/java/arq/cmdline/ModEngine.java    |  101 +-
 .../src/main/java/arq/cmdline/ModFormat.java    |   15 +-
 .../src/main/java/arq/cmdline/ModGeneral.java   |   60 -
 .../main/java/arq/cmdline/ModGraphStore.java    |   94 -
 jena-arq/src/main/java/arq/cmdline/ModItem.java |   15 +-
 .../main/java/arq/cmdline/ModLangOutput.java    |    9 +-
 .../src/main/java/arq/cmdline/ModLangParse.java |   16 +-
 .../src/main/java/arq/cmdline/ModQueryIn.java   |   26 +-
 .../src/main/java/arq/cmdline/ModQueryOut.java  |   14 +-
 .../src/main/java/arq/cmdline/ModRemote.java    |    9 +-
 .../src/main/java/arq/cmdline/ModResultsIn.java |   18 +-
 .../main/java/arq/cmdline/ModResultsOut.java    |   15 +-
 .../src/main/java/arq/cmdline/ModSymbol.java    |   21 +-
 jena-arq/src/main/java/arq/cmdline/ModTime.java |   12 +-
 .../src/main/java/arq/cmdline/ModVersion.java   |   68 -
 jena-arq/src/main/java/arq/cmdline/Usage.java   |  105 -
 jena-arq/src/main/java/arq/juuid.java           |   14 +-
 jena-arq/src/main/java/arq/load.java            |   29 +-
 jena-arq/src/main/java/arq/qexpr.java           |   42 +-
 jena-arq/src/main/java/arq/qparse.java          |   32 +-
 jena-arq/src/main/java/arq/query.java           |   27 +-
 jena-arq/src/main/java/arq/rset.java            |    3 +-
 jena-arq/src/main/java/arq/rsparql.java         |   19 +-
 jena-arq/src/main/java/arq/rupdate.java         |   15 +-
 jena-arq/src/main/java/arq/sparql.java          |    2 +-
 jena-arq/src/main/java/arq/sse.java             |   21 +-
 jena-arq/src/main/java/arq/sse_exec.java        |    9 +-
 jena-arq/src/main/java/arq/sse_query.java       |   31 +-
 jena-arq/src/main/java/arq/uparse.java          |   73 +-
 jena-arq/src/main/java/arq/update.java          |   94 +-
 jena-arq/src/main/java/arq/version.java         |    2 +-
 .../main/java/com/hp/hpl/jena/query/ARQ.java    |  595 --
 .../java/com/hp/hpl/jena/query/BIOInput.java    |   59 -
 .../java/com/hp/hpl/jena/query/Dataset.java     |   94 -
 .../com/hp/hpl/jena/query/DatasetAccessor.java  |   66 -
 .../hpl/jena/query/DatasetAccessorFactory.java  |   91 -
 .../com/hp/hpl/jena/query/DatasetFactory.java   |  268 -
 .../hp/hpl/jena/query/LabelExistsException.java |   32 -
 .../jena/query/ParameterizedSparqlString.java   | 1712 -----
 .../main/java/com/hp/hpl/jena/query/Query.java  |  892 ---
 .../hp/hpl/jena/query/QueryBuildException.java  |   31 -
 .../hpl/jena/query/QueryCancelledException.java |   25 -
 .../com/hp/hpl/jena/query/QueryException.java   |   33 -
 .../hp/hpl/jena/query/QueryExecException.java   |   31 -
 .../com/hp/hpl/jena/query/QueryExecution.java   |  204 -
 .../hpl/jena/query/QueryExecutionFactory.java   |  578 --
 .../com/hp/hpl/jena/query/QueryFactory.java     |  233 -
 .../hp/hpl/jena/query/QueryFatalException.java  |   32 -
 .../hp/hpl/jena/query/QueryParseException.java  |   60 -
 .../com/hp/hpl/jena/query/QuerySolution.java    |   64 -
 .../com/hp/hpl/jena/query/QuerySolutionMap.java |   86 -
 .../com/hp/hpl/jena/query/QueryVisitor.java     |   47 -
 .../java/com/hp/hpl/jena/query/ReadWrite.java   |   25 -
 .../java/com/hp/hpl/jena/query/ResultSet.java   |   66 -
 .../com/hp/hpl/jena/query/ResultSetFactory.java |  464 --
 .../hp/hpl/jena/query/ResultSetFormatter.java   |  840 ---
 .../hp/hpl/jena/query/ResultSetRewindable.java  |   28 -
 .../com/hp/hpl/jena/query/SortCondition.java    |  156 -
 .../main/java/com/hp/hpl/jena/query/Syntax.java |  170 -
 .../java/com/hp/hpl/jena/query/package.html     |   11 -
 .../com/hp/hpl/jena/sparql/ARQConstants.java    |  267 -
 .../com/hp/hpl/jena/sparql/ARQException.java    |   31 -
 .../jena/sparql/ARQInternalErrorException.java  |   33 -
 .../hp/hpl/jena/sparql/ARQNotImplemented.java   |   39 -
 .../com/hp/hpl/jena/sparql/AlreadyExists.java   |   29 -
 .../com/hp/hpl/jena/sparql/DoesNotExist.java    |   29 -
 .../jena/sparql/JenaTransactionException.java   |   29 -
 .../java/com/hp/hpl/jena/sparql/SystemARQ.java  |  160 -
 .../com/hp/hpl/jena/sparql/algebra/Algebra.java |  219 -
 .../jena/sparql/algebra/AlgebraGenerator.java   |  676 --
 .../hp/hpl/jena/sparql/algebra/AlgebraQuad.java |  115 -
 .../jena/sparql/algebra/BeforeAfterVisitor.java |   82 -
 .../hp/hpl/jena/sparql/algebra/JoinType.java    |   21 -
 .../java/com/hp/hpl/jena/sparql/algebra/Op.java |   31 -
 .../hp/hpl/jena/sparql/algebra/OpAsQuery.java   |  727 --
 .../hpl/jena/sparql/algebra/OpExtBuilder.java   |   30 -
 .../hpl/jena/sparql/algebra/OpExtRegistry.java  |   89 -
 .../com/hp/hpl/jena/sparql/algebra/OpLib.java   |   53 -
 .../hpl/jena/sparql/algebra/OpPrefixesUsed.java |  112 -
 .../com/hp/hpl/jena/sparql/algebra/OpVars.java  |  428 --
 .../hp/hpl/jena/sparql/algebra/OpVisitor.java   |   71 -
 .../hpl/jena/sparql/algebra/OpVisitorBase.java  |   94 -
 .../jena/sparql/algebra/OpVisitorByType.java    |  181 -
 .../sparql/algebra/OpVisitorByTypeBase.java     |   50 -
 .../hp/hpl/jena/sparql/algebra/OpWalker.java    |  131 -
 .../algebra/PropertyFunctionGenerator.java      |  241 -
 .../com/hp/hpl/jena/sparql/algebra/Table.java   |   42 -
 .../hpl/jena/sparql/algebra/TableFactory.java   |   58 -
 .../hp/hpl/jena/sparql/algebra/Transform.java   |   72 -
 .../hpl/jena/sparql/algebra/TransformBase.java  |  103 -
 .../hpl/jena/sparql/algebra/TransformCopy.java  |  164 -
 .../jena/sparql/algebra/TransformQuadGraph.java |  124 -
 .../sparql/algebra/TransformUnionQuery.java     |  119 -
 .../jena/sparql/algebra/TransformWrapper.java   |  111 -
 .../hp/hpl/jena/sparql/algebra/Transformer.java |  498 --
 .../com/hp/hpl/jena/sparql/algebra/op/Op0.java  |   30 -
 .../com/hp/hpl/jena/sparql/algebra/op/Op1.java  |   40 -
 .../com/hp/hpl/jena/sparql/algebra/op/Op2.java  |   55 -
 .../hp/hpl/jena/sparql/algebra/op/OpAssign.java |  126 -
 .../hp/hpl/jena/sparql/algebra/op/OpBGP.java    |   70 -
 .../hp/hpl/jena/sparql/algebra/op/OpBase.java   |   80 -
 .../jena/sparql/algebra/op/OpConditional.java   |   65 -
 .../jena/sparql/algebra/op/OpDatasetNames.java  |   60 -
 .../hp/hpl/jena/sparql/algebra/op/OpDiff.java   |   55 -
 .../jena/sparql/algebra/op/OpDisjunction.java   |   97 -
 .../hpl/jena/sparql/algebra/op/OpDistinct.java  |   61 -
 .../sparql/algebra/op/OpDistinctReduced.java    |   28 -
 .../hp/hpl/jena/sparql/algebra/op/OpExt.java    |   98 -
 .../hp/hpl/jena/sparql/algebra/op/OpExtend.java |  130 -
 .../jena/sparql/algebra/op/OpExtendAssign.java  |   55 -
 .../hp/hpl/jena/sparql/algebra/op/OpFilter.java |  124 -
 .../hp/hpl/jena/sparql/algebra/op/OpGraph.java  |   63 -
 .../hp/hpl/jena/sparql/algebra/op/OpGroup.java  |   83 -
 .../hp/hpl/jena/sparql/algebra/op/OpJoin.java   |   91 -
 .../hp/hpl/jena/sparql/algebra/op/OpLabel.java  |   90 -
 .../hpl/jena/sparql/algebra/op/OpLeftJoin.java  |   75 -
 .../hp/hpl/jena/sparql/algebra/op/OpList.java   |   60 -
 .../hp/hpl/jena/sparql/algebra/op/OpMinus.java  |   55 -
 .../hpl/jena/sparql/algebra/op/OpModifier.java  |   38 -
 .../com/hp/hpl/jena/sparql/algebra/op/OpN.java  |   76 -
 .../hp/hpl/jena/sparql/algebra/op/OpNull.java   |   58 -
 .../hp/hpl/jena/sparql/algebra/op/OpOrder.java  |   72 -
 .../hp/hpl/jena/sparql/algebra/op/OpPath.java   |   75 -
 .../hpl/jena/sparql/algebra/op/OpProcedure.java |  111 -
 .../hpl/jena/sparql/algebra/op/OpProject.java   |   71 -
 .../hpl/jena/sparql/algebra/op/OpPropFunc.java  |   96 -
 .../hp/hpl/jena/sparql/algebra/op/OpQuad.java   |  100 -
 .../hpl/jena/sparql/algebra/op/OpQuadBlock.java |  141 -
 .../jena/sparql/algebra/op/OpQuadPattern.java   |  113 -
 .../hpl/jena/sparql/algebra/op/OpReduced.java   |   61 -
 .../hpl/jena/sparql/algebra/op/OpSequence.java  |   94 -
 .../hpl/jena/sparql/algebra/op/OpService.java   |   78 -
 .../hp/hpl/jena/sparql/algebra/op/OpSlice.java  |   73 -
 .../hp/hpl/jena/sparql/algebra/op/OpTable.java  |   81 -
 .../hp/hpl/jena/sparql/algebra/op/OpTopN.java   |   74 -
 .../hp/hpl/jena/sparql/algebra/op/OpTriple.java |  103 -
 .../hp/hpl/jena/sparql/algebra/op/OpUnion.java  |   60 -
 .../optimize/ExprTransformApplyTransform.java   |   65 -
 .../optimize/ExprTransformConstantFold.java     |  110 -
 .../optimize/ExprVisitorApplyVisitor.java       |   41 -
 .../algebra/optimize/OpVisitorExprPrepare.java  |   48 -
 .../jena/sparql/algebra/optimize/Optimize.java  |  309 -
 .../jena/sparql/algebra/optimize/Rewrite.java   |   26 -
 .../optimize/TransformDistinctToReduced.java    |  168 -
 .../algebra/optimize/TransformExpandOneOf.java  |  133 -
 .../optimize/TransformExtendCombine.java        |   84 -
 .../optimize/TransformFilterConjunction.java    |   53 -
 .../optimize/TransformFilterDisjunction.java    |  188 -
 .../optimize/TransformFilterEquality.java       |  412 --
 .../optimize/TransformFilterImplicitJoin.java   |  489 --
 .../optimize/TransformFilterInequality.java     |  421 --
 .../optimize/TransformFilterPlacement.java      |  787 --
 .../TransformFilterPlacementConservative.java   |  283 -
 .../optimize/TransformImplicitLeftJoin.java     |  427 --
 .../algebra/optimize/TransformJoinStrategy.java |   86 -
 .../algebra/optimize/TransformMergeBGPs.java    |  119 -
 .../TransformOrderByDistinctApplication.java    |  173 -
 .../algebra/optimize/TransformPathFlattern.java |   61 -
 .../optimize/TransformPathFlatternStd.java      |  224 -
 .../algebra/optimize/TransformPattern2Join.java |   91 -
 .../optimize/TransformPromoteTableEmpty.java    |  173 -
 .../optimize/TransformPropertyFunction.java     |  105 -
 .../algebra/optimize/TransformRemoveLabels.java |   33 -
 .../algebra/optimize/TransformReorder.java      |   82 -
 .../algebra/optimize/TransformScopeRename.java  |  119 -
 .../algebra/optimize/TransformSimplify.java     |   65 -
 .../sparql/algebra/optimize/TransformTopN.java  |  223 -
 .../hpl/jena/sparql/algebra/table/Table1.java   |   91 -
 .../jena/sparql/algebra/table/TableBase.java    |  125 -
 .../jena/sparql/algebra/table/TableData.java    |   40 -
 .../jena/sparql/algebra/table/TableEmpty.java   |   67 -
 .../hpl/jena/sparql/algebra/table/TableN.java   |  104 -
 .../jena/sparql/algebra/table/TableUnit.java    |   72 -
 .../jena/sparql/algebra/table/TableWriter.java  |   75 -
 .../hp/hpl/jena/sparql/core/BasicPattern.java   |  122 -
 .../jena/sparql/core/ComparisonException.java   |   25 -
 .../hp/hpl/jena/sparql/core/DatasetChanges.java |   38 -
 .../jena/sparql/core/DatasetChangesBatched.java |  108 -
 .../jena/sparql/core/DatasetChangesCapture.java |   95 -
 .../jena/sparql/core/DatasetChangesCounter.java |   71 -
 .../jena/sparql/core/DatasetDescription.java    |  109 -
 .../hp/hpl/jena/sparql/core/DatasetGraph.java   |  136 -
 .../core/DatasetGraphAltDefaultGraph.java       |   65 -
 .../hpl/jena/sparql/core/DatasetGraphBase.java  |  206 -
 .../jena/sparql/core/DatasetGraphBaseFind.java  |   82 -
 .../jena/sparql/core/DatasetGraphCaching.java   |  174 -
 .../sparql/core/DatasetGraphCollection.java     |  109 -
 .../jena/sparql/core/DatasetGraphFactory.java   |   97 -
 .../hpl/jena/sparql/core/DatasetGraphMaker.java |   49 -
 .../hpl/jena/sparql/core/DatasetGraphMap.java   |  125 -
 .../jena/sparql/core/DatasetGraphMonitor.java   |  203 -
 .../hpl/jena/sparql/core/DatasetGraphOne.java   |  167 -
 .../hpl/jena/sparql/core/DatasetGraphQuad.java  |   64 -
 .../jena/sparql/core/DatasetGraphReadOnly.java  |   89 -
 .../jena/sparql/core/DatasetGraphSimpleMem.java |  242 -
 .../sparql/core/DatasetGraphTrackActive.java    |  179 -
 .../sparql/core/DatasetGraphTriplesQuads.java   |   65 -
 .../sparql/core/DatasetGraphViewGraphs.java     |   48 -
 .../jena/sparql/core/DatasetGraphWithLock.java  |  152 -
 .../jena/sparql/core/DatasetGraphWrapper.java   |  159 -
 .../hp/hpl/jena/sparql/core/DatasetImpl.java    |  283 -
 .../jena/sparql/core/DatasetPrefixStorage.java  |   58 -
 .../hpl/jena/sparql/core/DynamicDatasets.java   |  133 -
 .../com/hp/hpl/jena/sparql/core/GraphView.java  |  162 -
 .../com/hp/hpl/jena/sparql/core/PathBlock.java  |   83 -
 .../com/hp/hpl/jena/sparql/core/Prologue.java   |  228 -
 .../java/com/hp/hpl/jena/sparql/core/Quad.java  |  219 -
 .../com/hp/hpl/jena/sparql/core/QuadAction.java |   40 -
 .../hp/hpl/jena/sparql/core/QuadPattern.java    |  104 -
 .../jena/sparql/core/QueryCheckException.java   |   29 -
 .../hp/hpl/jena/sparql/core/QueryCompare.java   |  190 -
 .../hp/hpl/jena/sparql/core/QueryHashCode.java  |  145 -
 .../hpl/jena/sparql/core/QuerySolutionBase.java |   50 -
 .../hp/hpl/jena/sparql/core/ResultBinding.java  |   98 -
 .../com/hp/hpl/jena/sparql/core/Substitute.java |  294 -
 .../hp/hpl/jena/sparql/core/Transactional.java  |   46 -
 .../hpl/jena/sparql/core/TransactionalNull.java |   58 -
 .../com/hp/hpl/jena/sparql/core/TriplePath.java |  139 -
 .../java/com/hp/hpl/jena/sparql/core/Var.java   |  196 -
 .../com/hp/hpl/jena/sparql/core/VarAlloc.java   |   58 -
 .../hp/hpl/jena/sparql/core/VarExprList.java    |  153 -
 .../java/com/hp/hpl/jena/sparql/core/Vars.java  |   51 -
 .../sparql/core/assembler/AssemblerUtils.java   |  130 -
 .../sparql/core/assembler/DatasetAssembler.java |  105 -
 .../assembler/DatasetAssemblerException.java    |   31 -
 .../core/assembler/DatasetAssemblerVocab.java   |   48 -
 .../assembler/DatasetDescriptionAssembler.java  |   54 -
 .../core/assembler/DatasetNullAssembler.java    |   62 -
 .../core/assembler/GraphStoreAssembler.java     |   47 -
 .../core/describe/DescribeBNodeClosure.java     |  100 -
 .../describe/DescribeBNodeClosureFactory.java   |   28 -
 .../sparql/core/describe/DescribeHandler.java   |   51 -
 .../core/describe/DescribeHandlerFactory.java   |   27 -
 .../core/describe/DescribeHandlerRegistry.java  |  101 -
 .../jena/sparql/engine/ExecutionContext.java    |  131 -
 .../com/hp/hpl/jena/sparql/engine/OpEval.java   |   31 -
 .../com/hp/hpl/jena/sparql/engine/Plan.java     |   38 -
 .../com/hp/hpl/jena/sparql/engine/PlanBase.java |   81 -
 .../com/hp/hpl/jena/sparql/engine/PlanOp.java   |   75 -
 .../hpl/jena/sparql/engine/QueryEngineBase.java |  162 -
 .../jena/sparql/engine/QueryEngineFactory.java  |   36 -
 .../engine/QueryEngineFactoryWrapper.java       |   69 -
 .../jena/sparql/engine/QueryEngineRegistry.java |  151 -
 .../jena/sparql/engine/QueryExecutionBase.java  |  616 --
 .../hpl/jena/sparql/engine/QueryIterator.java   |   39 -
 .../com/hp/hpl/jena/sparql/engine/Rename.java   |  189 -
 .../sparql/engine/ResultSetCheckCondition.java  |  111 -
 .../hpl/jena/sparql/engine/ResultSetStream.java |  147 -
 .../hp/hpl/jena/sparql/engine/TableJoin.java    |  104 -
 .../hpl/jena/sparql/engine/binding/Binding.java |   45 -
 .../jena/sparql/engine/binding/Binding0.java    |   52 -
 .../jena/sparql/engine/binding/Binding1.java    |   71 -
 .../jena/sparql/engine/binding/BindingBase.java |  231 -
 .../engine/binding/BindingComparator.java       |  178 -
 .../sparql/engine/binding/BindingFactory.java   |   64 -
 .../sparql/engine/binding/BindingFixed.java     |   80 -
 .../sparql/engine/binding/BindingHashMap.java   |  119 -
 .../engine/binding/BindingInputStream.java      |  239 -
 .../jena/sparql/engine/binding/BindingMap.java  |   38 -
 .../engine/binding/BindingOutputStream.java     |  194 -
 .../sparql/engine/binding/BindingProject.java   |   38 -
 .../engine/binding/BindingProjectBase.java      |   87 -
 .../engine/binding/BindingProjectNamed.java     |   36 -
 .../jena/sparql/engine/binding/BindingRoot.java |   35 -
 .../sparql/engine/binding/BindingUtils.java     |   98 -
 .../sparql/engine/binding/BindingWrapped.java   |   75 -
 .../sparql/engine/http/HttpContentType.java     |  112 -
 .../hpl/jena/sparql/engine/http/HttpParams.java |   52 -
 .../hpl/jena/sparql/engine/http/HttpQuery.java  |  468 --
 .../hp/hpl/jena/sparql/engine/http/Params.java  |  176 -
 .../sparql/engine/http/QueryEngineHTTP.java     |  810 --
 .../sparql/engine/http/QueryExceptionHTTP.java  |  116 -
 .../hp/hpl/jena/sparql/engine/http/Service.java |  287 -
 .../sparql/engine/index/HashIndexTable.java     |  219 -
 .../jena/sparql/engine/index/IndexFactory.java  |   46 -
 .../jena/sparql/engine/index/IndexTable.java    |   35 -
 .../jena/sparql/engine/index/LinearIndex.java   |  113 -
 .../jena/sparql/engine/index/SetIndexTable.java |   70 -
 .../jena/sparql/engine/iterator/QueryIter.java  |  104 -
 .../jena/sparql/engine/iterator/QueryIter1.java |   88 -
 .../jena/sparql/engine/iterator/QueryIter2.java |   94 -
 .../engine/iterator/QueryIter2LoopOnLeft.java   |   82 -
 .../sparql/engine/iterator/QueryIterAssign.java |  101 -
 .../iterator/QueryIterAssignVarValue.java       |   84 -
 .../engine/iterator/QueryIterBlockTriples.java  |   97 -
 .../engine/iterator/QueryIterCommonParent.java  |   82 -
 .../sparql/engine/iterator/QueryIterConcat.java |  144 -
 .../engine/iterator/QueryIterConvert.java       |   73 -
 .../engine/iterator/QueryIterDefaulting.java    |   99 -
 .../sparql/engine/iterator/QueryIterDiff.java   |   55 -
 .../engine/iterator/QueryIterDistinct.java      |   68 -
 .../engine/iterator/QueryIterDistinctMem.java   |   50 -
 .../iterator/QueryIterDistinctReduced.java      |   80 -
 .../iterator/QueryIterDistinguishedVars.java    |   47 -
 .../engine/iterator/QueryIterExtendByVar.java   |   73 -
 .../engine/iterator/QueryIterFilterExpr.java    |   73 -
 .../sparql/engine/iterator/QueryIterGroup.java  |  204 -
 .../sparql/engine/iterator/QueryIterMinus.java  |   89 -
 .../engine/iterator/QueryIterNullIterator.java  |   59 -
 .../sparql/engine/iterator/QueryIterPath.java   |   61 -
 .../sparql/engine/iterator/QueryIterPeek.java   |   80 -
 .../engine/iterator/QueryIterPlainWrapper.java  |   78 -
 .../engine/iterator/QueryIterProcedure.java     |   91 -
 .../iterator/QueryIterProcessBinding.java       |   99 -
 .../engine/iterator/QueryIterProject.java       |   76 -
 .../engine/iterator/QueryIterProjectMerge.java  |  105 -
 .../engine/iterator/QueryIterReduced.java       |   53 -
 .../engine/iterator/QueryIterRepeatApply.java   |  128 -
 .../sparql/engine/iterator/QueryIterRoot.java   |   49 -
 .../engine/iterator/QueryIterSingleton.java     |   64 -
 .../sparql/engine/iterator/QueryIterSlice.java  |   97 -
 .../sparql/engine/iterator/QueryIterSort.java   |  109 -
 .../sparql/engine/iterator/QueryIterSub.java    |   60 -
 .../sparql/engine/iterator/QueryIterTopN.java   |  119 -
 .../engine/iterator/QueryIterTracked.java       |   63 -
 .../engine/iterator/QueryIterTriplePattern.java |  186 -
 .../sparql/engine/iterator/QueryIterYieldN.java |   85 -
 .../engine/iterator/QueryIteratorBase.java      |  266 -
 .../engine/iterator/QueryIteratorCaching.java   |   78 -
 .../engine/iterator/QueryIteratorCheck.java     |  108 -
 .../engine/iterator/QueryIteratorCloseable.java |   41 -
 .../engine/iterator/QueryIteratorCopy.java      |   91 -
 .../engine/iterator/QueryIteratorLogging.java   |   71 -
 .../engine/iterator/QueryIteratorMapped.java    |   80 -
 .../engine/iterator/QueryIteratorResultSet.java |   47 -
 .../engine/iterator/QueryIteratorTiming.java    |   87 -
 .../engine/iterator/QueryIteratorWrapper.java   |   74 -
 .../sparql/engine/main/ExecutionDispatch.java   |  335 -
 .../jena/sparql/engine/main/JoinClassifier.java |  181 -
 .../sparql/engine/main/LeftJoinClassifier.java  |  122 -
 .../hpl/jena/sparql/engine/main/OpExecutor.java |  471 --
 .../sparql/engine/main/OpExecutorFactory.java   |   23 -
 .../com/hp/hpl/jena/sparql/engine/main/QC.java  |   66 -
 .../sparql/engine/main/QueryEngineMain.java     |  105 -
 .../sparql/engine/main/QueryEngineMainQuad.java |   79 -
 .../jena/sparql/engine/main/StageBuilder.java   |  118 -
 .../jena/sparql/engine/main/StageGenerator.java |   49 -
 .../engine/main/StageGeneratorGeneric.java      |   86 -
 .../hpl/jena/sparql/engine/main/VarFinder.java  |  273 -
 .../engine/main/iterator/QueryIterGraph.java    |  209 -
 .../engine/main/iterator/QueryIterJoin.java     |   32 -
 .../engine/main/iterator/QueryIterJoinBase.java |   80 -
 .../engine/main/iterator/QueryIterLeftJoin.java |   32 -
 .../main/iterator/QueryIterOptionalIndex.java   |   65 -
 .../engine/main/iterator/QueryIterService.java  |   78 -
 .../engine/main/iterator/QueryIterUnion.java    |   77 -
 .../jena/sparql/engine/optimizer/Pattern.java   |   64 -
 .../sparql/engine/optimizer/StatsMatcher.java   |  512 --
 .../optimizer/reorder/PatternElements.java      |   55 -
 .../engine/optimizer/reorder/PatternTriple.java |   75 -
 .../engine/optimizer/reorder/ReorderFixed.java  |  109 -
 .../optimizer/reorder/ReorderFixedAlt.java      |   80 -
 .../engine/optimizer/reorder/ReorderLib.java    |   79 -
 .../engine/optimizer/reorder/ReorderProc.java   |   31 -
 .../optimizer/reorder/ReorderProcIndexes.java   |   70 -
 .../reorder/ReorderTransformation.java          |   30 -
 .../ReorderTransformationSubstitution.java      |  311 -
 .../optimizer/reorder/ReorderWeighted.java      |   37 -
 .../engine/optimizer/reorder/Reorderable.java   |   25 -
 .../com/hp/hpl/jena/sparql/engine/ref/Eval.java |  283 -
 .../hpl/jena/sparql/engine/ref/Evaluator.java   |   68 -
 .../sparql/engine/ref/EvaluatorDispatch.java    |  347 -
 .../sparql/engine/ref/EvaluatorFactory.java     |   29 -
 .../jena/sparql/engine/ref/EvaluatorSimple.java |  343 -
 .../jena/sparql/engine/ref/QueryEngineRef.java  |  111 -
 .../sparql/engine/ref/QueryEngineRefQuad.java   |   82 -
 .../java/com/hp/hpl/jena/sparql/expr/E_Add.java |   47 -
 .../com/hp/hpl/jena/sparql/expr/E_BNode.java    |   99 -
 .../com/hp/hpl/jena/sparql/expr/E_Bound.java    |   52 -
 .../com/hp/hpl/jena/sparql/expr/E_Call.java     |  132 -
 .../com/hp/hpl/jena/sparql/expr/E_Cast.java     |   49 -
 .../com/hp/hpl/jena/sparql/expr/E_Coalesce.java |   61 -
 .../hp/hpl/jena/sparql/expr/E_Conditional.java  |   68 -
 .../com/hp/hpl/jena/sparql/expr/E_Datatype.java |   38 -
 .../hp/hpl/jena/sparql/expr/E_DateTimeDay.java  |   38 -
 .../hpl/jena/sparql/expr/E_DateTimeHours.java   |   38 -
 .../hpl/jena/sparql/expr/E_DateTimeMinutes.java |   38 -
 .../hpl/jena/sparql/expr/E_DateTimeMonth.java   |   38 -
 .../hpl/jena/sparql/expr/E_DateTimeSeconds.java |   38 -
 .../hp/hpl/jena/sparql/expr/E_DateTimeTZ.java   |   38 -
 .../jena/sparql/expr/E_DateTimeTimezone.java    |   38 -
 .../hp/hpl/jena/sparql/expr/E_DateTimeYear.java |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_Divide.java   |   47 -
 .../com/hp/hpl/jena/sparql/expr/E_Equals.java   |   46 -
 .../com/hp/hpl/jena/sparql/expr/E_Exists.java   |   93 -
 .../com/hp/hpl/jena/sparql/expr/E_Function.java |  137 -
 .../hpl/jena/sparql/expr/E_FunctionDynamic.java |   43 -
 .../hp/hpl/jena/sparql/expr/E_GreaterThan.java  |   42 -
 .../jena/sparql/expr/E_GreaterThanOrEqual.java  |   43 -
 .../java/com/hp/hpl/jena/sparql/expr/E_IRI.java |   64 -
 .../com/hp/hpl/jena/sparql/expr/E_IsBlank.java  |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_IsIRI.java    |   43 -
 .../hp/hpl/jena/sparql/expr/E_IsLiteral.java    |   43 -
 .../hp/hpl/jena/sparql/expr/E_IsNumeric.java    |   43 -
 .../com/hp/hpl/jena/sparql/expr/E_IsURI.java    |   40 -
 .../com/hp/hpl/jena/sparql/expr/E_Lang.java     |   38 -
 .../hp/hpl/jena/sparql/expr/E_LangMatches.java  |   41 -
 .../com/hp/hpl/jena/sparql/expr/E_LessThan.java |   42 -
 .../hpl/jena/sparql/expr/E_LessThanOrEqual.java |   42 -
 .../hp/hpl/jena/sparql/expr/E_LogicalAnd.java   |   95 -
 .../hp/hpl/jena/sparql/expr/E_LogicalNot.java   |   45 -
 .../hp/hpl/jena/sparql/expr/E_LogicalOr.java    |  110 -
 .../java/com/hp/hpl/jena/sparql/expr/E_MD5.java |   36 -
 .../com/hp/hpl/jena/sparql/expr/E_Multiply.java |   46 -
 .../hp/hpl/jena/sparql/expr/E_NotEquals.java    |   46 -
 .../hp/hpl/jena/sparql/expr/E_NotExists.java    |   94 -
 .../com/hp/hpl/jena/sparql/expr/E_NotOneOf.java |   58 -
 .../java/com/hp/hpl/jena/sparql/expr/E_Now.java |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_NumAbs.java   |   38 -
 .../hp/hpl/jena/sparql/expr/E_NumCeiling.java   |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_NumFloor.java |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_NumRound.java |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_OneOf.java    |   59 -
 .../hp/hpl/jena/sparql/expr/E_OneOfBase.java    |   92 -
 .../com/hp/hpl/jena/sparql/expr/E_Random.java   |   47 -
 .../com/hp/hpl/jena/sparql/expr/E_Regex.java    |  130 -
 .../com/hp/hpl/jena/sparql/expr/E_SHA1.java     |   36 -
 .../com/hp/hpl/jena/sparql/expr/E_SHA224.java   |   36 -
 .../com/hp/hpl/jena/sparql/expr/E_SHA256.java   |   36 -
 .../com/hp/hpl/jena/sparql/expr/E_SHA384.java   |   36 -
 .../com/hp/hpl/jena/sparql/expr/E_SHA512.java   |   36 -
 .../com/hp/hpl/jena/sparql/expr/E_SameTerm.java |   41 -
 .../java/com/hp/hpl/jena/sparql/expr/E_Str.java |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_StrAfter.java |   38 -
 .../hp/hpl/jena/sparql/expr/E_StrBefore.java    |   38 -
 .../hp/hpl/jena/sparql/expr/E_StrConcat.java    |   48 -
 .../hp/hpl/jena/sparql/expr/E_StrContains.java  |   38 -
 .../hp/hpl/jena/sparql/expr/E_StrDatatype.java  |   44 -
 .../hpl/jena/sparql/expr/E_StrEncodeForURI.java |   41 -
 .../hp/hpl/jena/sparql/expr/E_StrEndsWith.java  |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_StrLang.java  |   43 -
 .../hp/hpl/jena/sparql/expr/E_StrLength.java    |   38 -
 .../hp/hpl/jena/sparql/expr/E_StrLowerCase.java |   38 -
 .../hp/hpl/jena/sparql/expr/E_StrReplace.java   |   82 -
 .../hpl/jena/sparql/expr/E_StrStartsWith.java   |   38 -
 .../hp/hpl/jena/sparql/expr/E_StrSubstring.java |   52 -
 .../com/hp/hpl/jena/sparql/expr/E_StrUUID.java  |   45 -
 .../hp/hpl/jena/sparql/expr/E_StrUpperCase.java |   38 -
 .../com/hp/hpl/jena/sparql/expr/E_Subtract.java |   47 -
 .../java/com/hp/hpl/jena/sparql/expr/E_URI.java |   43 -
 .../com/hp/hpl/jena/sparql/expr/E_UUID.java     |   45 -
 .../hp/hpl/jena/sparql/expr/E_UnaryMinus.java   |   39 -
 .../hp/hpl/jena/sparql/expr/E_UnaryPlus.java    |   39 -
 .../com/hp/hpl/jena/sparql/expr/E_Version.java  |   45 -
 .../java/com/hp/hpl/jena/sparql/expr/Expr.java  |   93 -
 .../hp/hpl/jena/sparql/expr/ExprAggregator.java |  147 -
 .../com/hp/hpl/jena/sparql/expr/ExprBuild.java  |   44 -
 .../com/hp/hpl/jena/sparql/expr/ExprDigest.java |  128 -
 .../hpl/jena/sparql/expr/ExprEvalException.java |   33 -
 .../jena/sparql/expr/ExprEvalTypeException.java |   29 -
 .../hp/hpl/jena/sparql/expr/ExprException.java  |   32 -
 .../hp/hpl/jena/sparql/expr/ExprFunction.java   |  131 -
 .../hp/hpl/jena/sparql/expr/ExprFunction0.java  |   73 -
 .../hp/hpl/jena/sparql/expr/ExprFunction1.java  |   99 -
 .../hp/hpl/jena/sparql/expr/ExprFunction2.java  |  113 -
 .../hp/hpl/jena/sparql/expr/ExprFunction3.java  |  123 -
 .../hp/hpl/jena/sparql/expr/ExprFunctionN.java  |  125 -
 .../hp/hpl/jena/sparql/expr/ExprFunctionOp.java |   98 -
 .../com/hp/hpl/jena/sparql/expr/ExprLib.java    |  162 -
 .../com/hp/hpl/jena/sparql/expr/ExprList.java   |  148 -
 .../com/hp/hpl/jena/sparql/expr/ExprNode.java   |  121 -
 .../sparql/expr/ExprNotComparableException.java |   25 -
 .../com/hp/hpl/jena/sparql/expr/ExprSystem.java |   53 -
 .../hp/hpl/jena/sparql/expr/ExprTransform.java  |   34 -
 .../hpl/jena/sparql/expr/ExprTransformBase.java |   34 -
 .../hpl/jena/sparql/expr/ExprTransformCopy.java |  154 -
 .../hpl/jena/sparql/expr/ExprTransformOp.java   |   26 -
 .../sparql/expr/ExprTransformSubstitute.java    |   68 -
 .../hpl/jena/sparql/expr/ExprTransformer.java   |  209 -
 .../hpl/jena/sparql/expr/ExprTypeException.java |   31 -
 .../jena/sparql/expr/ExprUndefException.java    |   31 -
 .../com/hp/hpl/jena/sparql/expr/ExprVar.java    |  134 -
 .../com/hp/hpl/jena/sparql/expr/ExprVars.java   |  127 -
 .../hp/hpl/jena/sparql/expr/ExprVisitor.java    |   38 -
 .../hpl/jena/sparql/expr/ExprVisitorBase.java   |   47 -
 .../jena/sparql/expr/ExprVisitorFunction.java   |   36 -
 .../com/hp/hpl/jena/sparql/expr/ExprWalker.java |  119 -
 .../hp/hpl/jena/sparql/expr/FunctionLabel.java  |   27 -
 .../com/hp/hpl/jena/sparql/expr/NodeValue.java  | 1291 ----
 .../hp/hpl/jena/sparql/expr/RegexEngine.java    |   27 -
 .../com/hp/hpl/jena/sparql/expr/RegexJava.java  |   83 -
 .../hp/hpl/jena/sparql/expr/RegexXerces.java    |   49 -
 .../sparql/expr/ValueSpaceClassification.java   |   40 -
 .../sparql/expr/VariableNotBoundException.java  |   31 -
 .../jena/sparql/expr/aggregate/Accumulator.java |   34 -
 .../expr/aggregate/AccumulatorDistinctAll.java  |   43 -
 .../expr/aggregate/AccumulatorDistinctExpr.java |   75 -
 .../sparql/expr/aggregate/AccumulatorExpr.java  |   75 -
 .../expr/aggregate/AccumulatorFactory.java      |   31 -
 .../hpl/jena/sparql/expr/aggregate/AggAvg.java  |  110 -
 .../sparql/expr/aggregate/AggAvgDistinct.java   |  103 -
 .../jena/sparql/expr/aggregate/AggCount.java    |   85 -
 .../sparql/expr/aggregate/AggCountDistinct.java |   88 -
 .../jena/sparql/expr/aggregate/AggCountVar.java |   80 -
 .../expr/aggregate/AggCountVarDistinct.java     |   82 -
 .../jena/sparql/expr/aggregate/AggCustom.java   |  171 -
 .../sparql/expr/aggregate/AggGroupConcat.java   |  164 -
 .../expr/aggregate/AggGroupConcatDistinct.java  |  115 -
 .../hpl/jena/sparql/expr/aggregate/AggMax.java  |   45 -
 .../jena/sparql/expr/aggregate/AggMaxBase.java  |   77 -
 .../sparql/expr/aggregate/AggMaxDistinct.java   |   46 -
 .../hpl/jena/sparql/expr/aggregate/AggMin.java  |   45 -
 .../jena/sparql/expr/aggregate/AggMinBase.java  |   77 -
 .../sparql/expr/aggregate/AggMinDistinct.java   |   44 -
 .../hpl/jena/sparql/expr/aggregate/AggNull.java |   74 -
 .../jena/sparql/expr/aggregate/AggSample.java   |   85 -
 .../expr/aggregate/AggSampleDistinct.java       |   81 -
 .../hpl/jena/sparql/expr/aggregate/AggSum.java  |   91 -
 .../sparql/expr/aggregate/AggSumDistinct.java   |   91 -
 .../expr/aggregate/AggregateRegistry.java       |   70 -
 .../jena/sparql/expr/aggregate/Aggregator.java  |   58 -
 .../sparql/expr/aggregate/AggregatorBase.java   |  179 -
 .../expr/aggregate/AggregatorFactory.java       |   72 -
 .../sparql/expr/nodevalue/NodeFunctions.java    |  479 --
 .../sparql/expr/nodevalue/NodeValueBoolean.java |   52 -
 .../jena/sparql/expr/nodevalue/NodeValueDT.java |   91 -
 .../sparql/expr/nodevalue/NodeValueDecimal.java |   73 -
 .../sparql/expr/nodevalue/NodeValueDouble.java  |   68 -
 .../expr/nodevalue/NodeValueDuration.java       |   55 -
 .../sparql/expr/nodevalue/NodeValueFloat.java   |   64 -
 .../sparql/expr/nodevalue/NodeValueInteger.java |   79 -
 .../sparql/expr/nodevalue/NodeValueNode.java    |   40 -
 .../sparql/expr/nodevalue/NodeValueOps.java     |  316 -
 .../sparql/expr/nodevalue/NodeValueString.java  |   62 -
 .../sparql/expr/nodevalue/NodeValueVisitor.java |   41 -
 .../jena/sparql/expr/nodevalue/NumericType.java |   21 -
 .../jena/sparql/expr/nodevalue/XSDFuncOp.java   | 1414 ----
 .../hp/hpl/jena/sparql/function/CastXSD.java    |  135 -
 .../jena/sparql/function/CastXSD_Boolean.java   |   82 -
 .../jena/sparql/function/CastXSD_DateTime.java  |   54 -
 .../jena/sparql/function/CastXSD_Numeric.java   |   64 -
 .../hp/hpl/jena/sparql/function/Function.java   |   50 -
 .../hpl/jena/sparql/function/FunctionBase.java  |   87 -
 .../hpl/jena/sparql/function/FunctionBase0.java |   55 -
 .../hpl/jena/sparql/function/FunctionBase1.java |   57 -
 .../hpl/jena/sparql/function/FunctionBase2.java |   59 -
 .../hpl/jena/sparql/function/FunctionBase3.java |   59 -
 .../hpl/jena/sparql/function/FunctionBase4.java |   61 -
 .../hpl/jena/sparql/function/FunctionEnv.java   |   41 -
 .../jena/sparql/function/FunctionEnvBase.java   |   83 -
 .../jena/sparql/function/FunctionFactory.java   |   35 -
 .../sparql/function/FunctionFactoryAuto.java    |   45 -
 .../jena/sparql/function/FunctionRegistry.java  |  125 -
 .../jena/sparql/function/StandardFunctions.java |  142 -
 .../jena/sparql/function/library/FN_Abs.java    |   34 -
 .../jena/sparql/function/library/FN_BEV.java    |   34 -
 .../sparql/function/library/FN_Ceiling.java     |   34 -
 .../function/library/FN_DayFromDateTime.java    |   33 -
 .../function/library/FN_DaysFromDuration.java   |   33 -
 .../jena/sparql/function/library/FN_Floor.java  |   35 -
 .../function/library/FN_HoursFromDateTime.java  |   33 -
 .../function/library/FN_HoursFromDuration.java  |   33 -
 .../sparql/function/library/FN_Matches.java     |   78 -
 .../library/FN_MinutesFromDateTime.java         |   33 -
 .../library/FN_MinutesFromDuration.java         |   33 -
 .../function/library/FN_MonthFromDateTime.java  |   33 -
 .../function/library/FN_MonthsFromDuration.java |   33 -
 .../jena/sparql/function/library/FN_Not.java    |   34 -
 .../jena/sparql/function/library/FN_Round.java  |   34 -
 .../library/FN_SecondsFromDateTime.java         |   33 -
 .../library/FN_SecondsFromDuration.java         |   33 -
 .../sparql/function/library/FN_StrAfter.java    |   36 -
 .../sparql/function/library/FN_StrBefore.java   |   36 -
 .../sparql/function/library/FN_StrConcat.java   |   51 -
 .../sparql/function/library/FN_StrContains.java |   36 -
 .../function/library/FN_StrEncodeForURI.java    |   33 -
 .../sparql/function/library/FN_StrEndsWith.java |   36 -
 .../sparql/function/library/FN_StrLength.java   |   36 -
 .../function/library/FN_StrLowerCase.java       |   36 -
 .../function/library/FN_StrStartsWith.java      |   36 -
 .../function/library/FN_StrSubstring.java       |   63 -
 .../function/library/FN_StrUpperCase.java       |   36 -
 .../library/FN_TimezoneFromDateTime.java        |   33 -
 .../function/library/FN_YearFromDateTime.java   |   33 -
 .../function/library/FN_YearsFromDuration.java  |   34 -
 .../jena/sparql/function/library/SystemVar.java |   61 -
 .../hpl/jena/sparql/function/library/bnode.java |   41 -
 .../hpl/jena/sparql/function/library/date.java  |   61 -
 .../hp/hpl/jena/sparql/function/library/e.java  |   33 -
 .../hpl/jena/sparql/function/library/eval.java  |   71 -
 .../sparql/function/library/evenInteger.java    |   42 -
 .../jena/sparql/function/library/langeq.java    |   34 -
 .../library/leviathan/LeviathanConstants.java   |   25 -
 .../sparql/function/library/leviathan/cube.java |   49 -
 .../sparql/function/library/leviathan/e.java    |   42 -
 .../sparql/function/library/leviathan/pow.java  |   49 -
 .../sparql/function/library/leviathan/sq.java   |   49 -
 .../jena/sparql/function/library/localname.java |   42 -
 .../hpl/jena/sparql/function/library/max.java   |   36 -
 .../hpl/jena/sparql/function/library/min.java   |   36 -
 .../jena/sparql/function/library/namespace.java |   42 -
 .../hpl/jena/sparql/function/library/now.java   |   30 -
 .../hp/hpl/jena/sparql/function/library/pi.java |   32 -
 .../hpl/jena/sparql/function/library/print.java |   35 -
 .../jena/sparql/function/library/sha1sum.java   |   48 -
 .../hpl/jena/sparql/function/library/sqrt.java  |   35 -
 .../jena/sparql/function/library/strjoin.java   |   70 -
 .../jena/sparql/function/library/strlen.java    |   23 -
 .../jena/sparql/function/library/struuid.java   |   36 -
 .../jena/sparql/function/library/substr.java    |   24 -
 .../jena/sparql/function/library/substring.java |   63 -
 .../hpl/jena/sparql/function/library/uuid.java  |   36 -
 .../hpl/jena/sparql/function/library/wait.java  |   39 -
 .../function/user/ExprTransformExpand.java      |   94 -
 .../function/user/UserDefinedFunction.java      |   95 -
 .../user/UserDefinedFunctionDefinition.java     |  107 -
 .../user/UserDefinedFunctionFactory.java        |  243 -
 .../hp/hpl/jena/sparql/graph/GraphDataBag.java  |  123 -
 .../jena/sparql/graph/GraphDefaultDataBag.java  |   44 -
 .../jena/sparql/graph/GraphDistinctDataBag.java |   45 -
 .../hp/hpl/jena/sparql/graph/GraphFactory.java  |   92 -
 .../hp/hpl/jena/sparql/graph/GraphMemPlain.java |  181 -
 .../com/hp/hpl/jena/sparql/graph/GraphOps.java  |   89 -
 .../sparql/graph/GraphPrefixesProjection.java   |  111 -
 .../hp/hpl/jena/sparql/graph/GraphReadOnly.java |   65 -
 .../hp/hpl/jena/sparql/graph/GraphSPARQL.java   |  207 -
 .../jena/sparql/graph/GraphSPARQLService.java   |  131 -
 .../hpl/jena/sparql/graph/GraphUnionRead.java   |   77 -
 .../hp/hpl/jena/sparql/graph/GraphWrapper.java  |  161 -
 .../com/hp/hpl/jena/sparql/graph/NodeConst.java |   48 -
 .../hp/hpl/jena/sparql/graph/NodeTransform.java |   30 -
 .../hpl/jena/sparql/graph/NodeTransformLib.java |  249 -
 .../hpl/jena/sparql/graph/NodeTransformOp.java  |  219 -
 .../jena/sparql/graph/UnmodifiableGraph.java    |   44 -
 .../com/hp/hpl/jena/sparql/lang/ParserARQ.java  |  126 -
 .../hpl/jena/sparql/lang/ParserARQUpdate.java   |   92 -
 .../com/hp/hpl/jena/sparql/lang/ParserBase.java |  686 --
 .../hp/hpl/jena/sparql/lang/ParserSPARQL10.java |  125 -
 .../hp/hpl/jena/sparql/lang/ParserSPARQL11.java |  126 -
 .../jena/sparql/lang/ParserSPARQL11Update.java  |   90 -
 .../hp/hpl/jena/sparql/lang/SPARQLParser.java   |   55 -
 .../hpl/jena/sparql/lang/SPARQLParserBase.java  |  320 -
 .../jena/sparql/lang/SPARQLParserFactory.java   |   30 -
 .../jena/sparql/lang/SPARQLParserRegistry.java  |  145 -
 .../hp/hpl/jena/sparql/lang/SyntaxVarScope.java |  311 -
 .../hp/hpl/jena/sparql/lang/UpdateParser.java   |   62 -
 .../jena/sparql/lang/UpdateParserFactory.java   |   30 -
 .../jena/sparql/lang/UpdateParserRegistry.java  |  136 -
 .../hp/hpl/jena/sparql/lang/arq/ARQParser.java  | 6891 -----------------
 .../hpl/jena/sparql/lang/arq/ARQParserBase.java |   71 -
 .../sparql/lang/arq/ARQParserConstants.java     |  633 --
 .../sparql/lang/arq/ARQParserTokenManager.java  | 3895 ----------
 .../jena/sparql/lang/arq/JavaCharStream.java    |  617 --
 .../jena/sparql/lang/arq/ParseException.java    |  187 -
 .../com/hp/hpl/jena/sparql/lang/arq/Token.java  |  131 -
 .../hpl/jena/sparql/lang/arq/TokenMgrError.java |  147 -
 .../sparql/lang/sparql_10/JavaCharStream.java   |  635 --
 .../sparql/lang/sparql_10/ParseException.java   |  209 -
 .../sparql/lang/sparql_10/SPARQLParser10.java   | 2323 ------
 .../lang/sparql_10/SPARQLParser10Base.java      |   26 -
 .../lang/sparql_10/SPARQLParser10Constants.java |  351 -
 .../sparql_10/SPARQLParser10TokenManager.java   | 2459 -------
 .../hpl/jena/sparql/lang/sparql_10/Token.java   |  149 -
 .../sparql/lang/sparql_10/TokenMgrError.java    |  165 -
 .../sparql/lang/sparql_11/JavaCharStream.java   |  617 --
 .../sparql/lang/sparql_11/ParseException.java   |  187 -
 .../sparql/lang/sparql_11/SPARQLParser11.java   | 5092 -------------
 .../lang/sparql_11/SPARQLParser11Base.java      |   26 -
 .../lang/sparql_11/SPARQLParser11Constants.java |  612 --
 .../sparql_11/SPARQLParser11TokenManager.java   | 3830 ----------
 .../hpl/jena/sparql/lang/sparql_11/Token.java   |  131 -
 .../sparql/lang/sparql_11/TokenMgrError.java    |  147 -
 .../com/hp/hpl/jena/sparql/lib/DatasetLib.java  |   69 -
 .../com/hp/hpl/jena/sparql/lib/Metadata.java    |  112 -
 .../java/com/hp/hpl/jena/sparql/mgt/ARQMgt.java |   27 -
 .../com/hp/hpl/jena/sparql/mgt/ARQMgt_X.java    |  136 -
 .../hp/hpl/jena/sparql/mgt/ContextMBean.java    |  132 -
 .../com/hp/hpl/jena/sparql/mgt/Explain.java     |  374 -
 .../hp/hpl/jena/sparql/mgt/QueryEngineInfo.java |   68 -
 .../jena/sparql/mgt/QueryEngineInfoMBean.java   |   38 -
 .../hp/hpl/jena/sparql/mgt/QueryExecMBean.java  |   35 -
 .../com/hp/hpl/jena/sparql/mgt/SystemInfo.java  |   71 -
 .../hp/hpl/jena/sparql/mgt/SystemInfoMBean.java |   26 -
 .../jena/sparql/modify/GraphStoreAction.java    |   23 -
 .../hpl/jena/sparql/modify/GraphStoreBasic.java |   56 -
 .../hpl/jena/sparql/modify/GraphStoreNull.java  |   85 -
 .../modify/GraphStoreNullTransactional.java     |   62 -
 .../jena/sparql/modify/GraphStoreWrapper.java   |   47 -
 .../modify/NodeTransformBNodesToVariables.java  |   54 -
 .../hp/hpl/jena/sparql/modify/TemplateLib.java  |  198 -
 .../hpl/jena/sparql/modify/UpdateCompare.java   |   57 -
 .../hp/hpl/jena/sparql/modify/UpdateEngine.java |   43 -
 .../jena/sparql/modify/UpdateEngineBase.java    |   57 -
 .../jena/sparql/modify/UpdateEngineFactory.java |   35 -
 .../jena/sparql/modify/UpdateEngineMain.java    |   96 -
 .../sparql/modify/UpdateEngineNonStreaming.java |  109 -
 .../sparql/modify/UpdateEngineRegistry.java     |   97 -
 .../jena/sparql/modify/UpdateEngineWorker.java  |  639 --
 .../jena/sparql/modify/UpdateProcessRemote.java |   84 -
 .../sparql/modify/UpdateProcessRemoteBase.java  |  319 -
 .../sparql/modify/UpdateProcessRemoteForm.java  |   91 -
 .../jena/sparql/modify/UpdateProcessorBase.java |   78 -
 .../modify/UpdateProcessorStreamingBase.java    |   73 -
 .../jena/sparql/modify/UpdateRequestSink.java   |   75 -
 .../hp/hpl/jena/sparql/modify/UpdateSink.java   |   42 -
 .../jena/sparql/modify/UpdateVisitorSink.java   |   68 -
 .../hp/hpl/jena/sparql/modify/UsingList.java    |   44 -
 .../hpl/jena/sparql/modify/UsingUpdateSink.java |   93 -
 .../hpl/jena/sparql/modify/request/QuadAcc.java |   65 -
 .../jena/sparql/modify/request/QuadAccSink.java |   73 -
 .../jena/sparql/modify/request/QuadDataAcc.java |   84 -
 .../sparql/modify/request/QuadDataAccSink.java  |   58 -
 .../hpl/jena/sparql/modify/request/Target.java  |   97 -
 .../jena/sparql/modify/request/UpdateAdd.java   |   30 -
 .../sparql/modify/request/UpdateBinaryOp.java   |   66 -
 .../jena/sparql/modify/request/UpdateClear.java |   36 -
 .../jena/sparql/modify/request/UpdateCopy.java  |   30 -
 .../sparql/modify/request/UpdateCreate.java     |   74 -
 .../jena/sparql/modify/request/UpdateData.java  |   49 -
 .../sparql/modify/request/UpdateDataDelete.java |   28 -
 .../sparql/modify/request/UpdateDataInsert.java |   28 -
 .../sparql/modify/request/UpdateDataWriter.java |   58 -
 .../modify/request/UpdateDeleteInsert.java      |   25 -
 .../modify/request/UpdateDeleteWhere.java       |   51 -
 .../jena/sparql/modify/request/UpdateDrop.java  |   36 -
 .../sparql/modify/request/UpdateDropClear.java  |   63 -
 .../jena/sparql/modify/request/UpdateLoad.java  |   80 -
 .../sparql/modify/request/UpdateModify.java     |  125 -
 .../jena/sparql/modify/request/UpdateMove.java  |   30 -
 .../sparql/modify/request/UpdateSerializer.java |   66 -
 .../sparql/modify/request/UpdateVisitor.java    |   44 -
 .../sparql/modify/request/UpdateWithUsing.java  |   66 -
 .../sparql/modify/request/UpdateWriter.java     |  280 -
 .../modify/request/UpdateWriterVisitor.java     |  295 -
 .../java/com/hp/hpl/jena/sparql/path/P_Alt.java |   43 -
 .../com/hp/hpl/jena/sparql/path/P_Distinct.java |   50 -
 .../hp/hpl/jena/sparql/path/P_FixedLength.java  |   52 -
 .../com/hp/hpl/jena/sparql/path/P_Inverse.java  |   50 -
 .../com/hp/hpl/jena/sparql/path/P_Link.java     |   52 -
 .../java/com/hp/hpl/jena/sparql/path/P_Mod.java |   92 -
 .../com/hp/hpl/jena/sparql/path/P_Multi.java    |   51 -
 .../hp/hpl/jena/sparql/path/P_NegPropSet.java   |   73 -
 .../hp/hpl/jena/sparql/path/P_OneOrMore1.java   |   47 -
 .../hp/hpl/jena/sparql/path/P_OneOrMoreN.java   |   47 -
 .../com/hp/hpl/jena/sparql/path/P_Path0.java    |   30 -
 .../com/hp/hpl/jena/sparql/path/P_Path1.java    |   34 -
 .../com/hp/hpl/jena/sparql/path/P_Path2.java    |   57 -
 .../hp/hpl/jena/sparql/path/P_ReverseLink.java  |   52 -
 .../java/com/hp/hpl/jena/sparql/path/P_Seq.java |   45 -
 .../com/hp/hpl/jena/sparql/path/P_Shortest.java |   50 -
 .../hp/hpl/jena/sparql/path/P_ZeroOrMore1.java  |   47 -
 .../hp/hpl/jena/sparql/path/P_ZeroOrMoreN.java  |   47 -
 .../hp/hpl/jena/sparql/path/P_ZeroOrOne.java    |   47 -
 .../java/com/hp/hpl/jena/sparql/path/Path.java  |   29 -
 .../com/hp/hpl/jena/sparql/path/PathBase.java   |   75 -
 .../hp/hpl/jena/sparql/path/PathCompiler.java   |  195 -
 .../hp/hpl/jena/sparql/path/PathFactory.java    |   45 -
 .../com/hp/hpl/jena/sparql/path/PathLib.java    |  257 -
 .../com/hp/hpl/jena/sparql/path/PathParser.java |   75 -
 .../jena/sparql/path/PathPropertyFunction.java  |   49 -
 .../hp/hpl/jena/sparql/path/PathVisitor.java    |   44 -
 .../hpl/jena/sparql/path/PathVisitorBase.java   |   44 -
 .../hpl/jena/sparql/path/PathVisitorByType.java |   76 -
 .../com/hp/hpl/jena/sparql/path/PathWriter.java |  311 -
 .../hpl/jena/sparql/path/eval/PathEngine.java   |  266 -
 .../hpl/jena/sparql/path/eval/PathEngine1.java  |  246 -
 .../hpl/jena/sparql/path/eval/PathEngineN.java  |  227 -
 .../jena/sparql/path/eval/PathEngineSPARQL.java |  271 -
 .../hp/hpl/jena/sparql/path/eval/PathEval.java  |   81 -
 .../jena/sparql/path/eval/PathEvaluator.java    |  190 -
 .../jena/sparql/pfunction/PFuncAssignBase.java  |   63 -
 .../sparql/pfunction/PFuncAssignToObject.java   |   29 -
 .../sparql/pfunction/PFuncAssignToSubject.java  |   40 -
 .../hpl/jena/sparql/pfunction/PFuncSimple.java  |   58 -
 .../sparql/pfunction/PFuncSimpleAndList.java    |   58 -
 .../hpl/jena/sparql/pfunction/ProcedurePF.java  |   73 -
 .../hpl/jena/sparql/pfunction/PropFuncArg.java  |  135 -
 .../jena/sparql/pfunction/PropFuncArgType.java  |   38 -
 .../jena/sparql/pfunction/PropertyFunction.java |   57 -
 .../sparql/pfunction/PropertyFunctionBase.java  |  127 -
 .../sparql/pfunction/PropertyFunctionEval.java  |   47 -
 .../pfunction/PropertyFunctionFactory.java      |   27 -
 .../pfunction/PropertyFunctionFactoryAuto.java  |   47 -
 .../pfunction/PropertyFunctionRegistry.java     |  161 -
 .../jena/sparql/pfunction/library/ListBase.java |  148 -
 .../sparql/pfunction/library/ListBase1.java     |   62 -
 .../sparql/pfunction/library/ListBaseList.java  |   58 -
 .../hpl/jena/sparql/pfunction/library/alt.java  |   29 -
 .../jena/sparql/pfunction/library/assign.java   |   55 -
 .../hpl/jena/sparql/pfunction/library/bag.java  |   29 -
 .../sparql/pfunction/library/blankNode.java     |   52 -
 .../jena/sparql/pfunction/library/bnode.java    |   24 -
 .../jena/sparql/pfunction/library/concat.java   |   54 -
 .../sparql/pfunction/library/container.java     |  182 -
 .../sparql/pfunction/library/listIndex.java     |  156 -
 .../sparql/pfunction/library/listLength.java    |   80 -
 .../sparql/pfunction/library/listMember.java    |   93 -
 .../hpl/jena/sparql/pfunction/library/seq.java  |   29 -
 .../jena/sparql/pfunction/library/splitIRI.java |  143 -
 .../jena/sparql/pfunction/library/splitURI.java |   23 -
 .../hpl/jena/sparql/pfunction/library/str.java  |   77 -
 .../jena/sparql/pfunction/library/strSplit.java |   75 -
 .../jena/sparql/pfunction/library/version.java  |   79 -
 .../sparql/pfunction/library/versionARQ.java    |   69 -
 .../hp/hpl/jena/sparql/procedure/ProcEval.java  |   82 -
 .../hp/hpl/jena/sparql/procedure/Procedure.java |   53 -
 .../jena/sparql/procedure/ProcedureBase.java    |   93 -
 .../jena/sparql/procedure/ProcedureEval.java    |   59 -
 .../jena/sparql/procedure/ProcedureFactory.java |   27 -
 .../sparql/procedure/ProcedureFactoryAuto.java  |   45 -
 .../sparql/procedure/ProcedureRegistry.java     |  126 -
 .../sparql/procedure/StandardProcedures.java    |   30 -
 .../jena/sparql/procedure/library/debug.java    |   37 -
 .../hp/hpl/jena/sparql/resultset/CSVInput.java  |  140 -
 .../jena/sparql/resultset/CSVInputIterator.java |  202 -
 .../hp/hpl/jena/sparql/resultset/CSVOutput.java |  155 -
 .../hp/hpl/jena/sparql/resultset/JSONInput.java |  274 -
 .../sparql/resultset/JSONInputIterator.java     |  759 --
 .../hpl/jena/sparql/resultset/JSONOutput.java   |   45 -
 .../jena/sparql/resultset/JSONOutputASK.java    |   57 -
 .../sparql/resultset/JSONOutputResultSet.java   |  272 -
 .../jena/sparql/resultset/JSONResultsKW.java    |   42 -
 .../hpl/jena/sparql/resultset/OutputBase.java   |   55 -
 .../jena/sparql/resultset/OutputFormatter.java  |   46 -
 .../hpl/jena/sparql/resultset/PlainFormat.java  |   89 -
 .../hp/hpl/jena/sparql/resultset/RDFInput.java  |  191 -
 .../hp/hpl/jena/sparql/resultset/RDFOutput.java |  155 -
 .../jena/sparql/resultset/ResultSetApply.java   |   61 -
 .../jena/sparql/resultset/ResultSetCompare.java |  354 -
 .../sparql/resultset/ResultSetException.java    |   28 -
 .../hpl/jena/sparql/resultset/ResultSetMem.java |  207 -
 .../sparql/resultset/ResultSetPeekable.java     |   46 -
 .../jena/sparql/resultset/ResultSetPeeking.java |  183 -
 .../sparql/resultset/ResultSetProcessor.java    |   48 -
 .../sparql/resultset/ResultSetRewindable.java   |   29 -
 .../jena/sparql/resultset/ResultsFormat.java    |  184 -
 .../hpl/jena/sparql/resultset/SPARQLResult.java |  132 -
 .../jena/sparql/resultset/SortedResultSet.java  |  145 -
 .../hp/hpl/jena/sparql/resultset/TSVInput.java  |  128 -
 .../jena/sparql/resultset/TSVInputIterator.java |  156 -
 .../hp/hpl/jena/sparql/resultset/TSVOutput.java |  123 -
 .../hpl/jena/sparql/resultset/TextOutput.java   |  238 -
 .../hp/hpl/jena/sparql/resultset/XMLInput.java  |  103 -
 .../hpl/jena/sparql/resultset/XMLInputSAX.java  |  378 -
 .../hpl/jena/sparql/resultset/XMLInputStAX.java |  519 --
 .../hp/hpl/jena/sparql/resultset/XMLOutput.java |   77 -
 .../hpl/jena/sparql/resultset/XMLOutputASK.java |   84 -
 .../sparql/resultset/XMLOutputResultSet.java    |  315 -
 .../hpl/jena/sparql/resultset/XMLResults.java   |   50 -
 .../jena/sparql/serializer/FmtExprSPARQL.java   |  232 -
 .../hpl/jena/sparql/serializer/FmtTemplate.java |   67 -
 .../jena/sparql/serializer/FormatterBase.java   |   62 -
 .../sparql/serializer/FormatterElement.java     |  655 --
 .../sparql/serializer/FormatterTemplate.java    |   28 -
 .../sparql/serializer/PrologueSerializer.java   |   82 -
 .../jena/sparql/serializer/QuerySerializer.java |  409 --
 .../serializer/QuerySerializerFactory.java      |   44 -
 .../sparql/serializer/SerializationContext.java |  157 -
 .../hpl/jena/sparql/serializer/Serializer.java  |  216 -
 .../sparql/serializer/SerializerRegistry.java   |  230 -
 .../serializer/UpdateSerializerFactory.java     |   44 -
 .../java/com/hp/hpl/jena/sparql/sse/Item.java   |  382 -
 .../hp/hpl/jena/sparql/sse/ItemException.java   |   25 -
 .../com/hp/hpl/jena/sparql/sse/ItemList.java    |  155 -
 .../hp/hpl/jena/sparql/sse/ItemLocation.java    |   46 -
 .../hp/hpl/jena/sparql/sse/ItemTransform.java   |   29 -
 .../hpl/jena/sparql/sse/ItemTransformBase.java  |   43 -
 .../hp/hpl/jena/sparql/sse/ItemTransformer.java |   84 -
 .../com/hp/hpl/jena/sparql/sse/ItemVisitor.java |   29 -
 .../com/hp/hpl/jena/sparql/sse/ItemWalker.java  |   62 -
 .../com/hp/hpl/jena/sparql/sse/ItemWriter.java  |  214 -
 .../java/com/hp/hpl/jena/sparql/sse/SSE.java    |  514 --
 .../hpl/jena/sparql/sse/SSEParseException.java  |   48 -
 .../java/com/hp/hpl/jena/sparql/sse/Tags.java   |  235 -
 .../com/hp/hpl/jena/sparql/sse/WriterSSE.java   |   69 -
 .../sparql/sse/builders/BuildException.java     |   29 -
 .../sparql/sse/builders/BuilderBinding.java     |   76 -
 .../jena/sparql/sse/builders/BuilderExec.java   |   56 -
 .../jena/sparql/sse/builders/BuilderExpr.java   | 1419 ----
 .../jena/sparql/sse/builders/BuilderGraph.java  |  248 -
 .../jena/sparql/sse/builders/BuilderLib.java    |  185 -
 .../jena/sparql/sse/builders/BuilderNode.java   |  182 -
 .../hpl/jena/sparql/sse/builders/BuilderOp.java |  791 --
 .../jena/sparql/sse/builders/BuilderPath.java   |  338 -
 .../sse/builders/BuilderPrefixMapping.java      |  111 -
 .../sparql/sse/builders/BuilderResultSet.java   |   57 -
 .../jena/sparql/sse/builders/BuilderTable.java  |   89 -
 .../sparql/sse/builders/ExprBuildException.java |   29 -
 .../sparql/sse/builders/OpBuildException.java   |   29 -
 .../hpl/jena/sparql/sse/lang/ParseHandler.java  |   41 -
 .../hpl/jena/sparql/sse/lang/ParseHandler2.java |  118 -
 .../jena/sparql/sse/lang/ParseHandlerDebug.java |  118 -
 .../jena/sparql/sse/lang/ParseHandlerForm.java  |  198 -
 .../jena/sparql/sse/lang/ParseHandlerLink.java  |   98 -
 .../jena/sparql/sse/lang/ParseHandlerPlain.java |  225 -
 .../sparql/sse/lang/ParseHandlerResolver.java   |  194 -
 .../sparql/sse/lang/ParseHandlerWrapper.java    |  101 -
 .../hpl/jena/sparql/sse/lang/ParserSSEBase.java |   96 -
 .../hp/hpl/jena/sparql/sse/lang/SSE_Parser.java |   75 -
 .../sparql/sse/lang/parser/JavaCharStream.java  |  635 --
 .../sparql/sse/lang/parser/ParseException.java  |  209 -
 .../sparql/sse/lang/parser/SSE_ParserCore.java  |  564 --
 .../lang/parser/SSE_ParserCoreConstants.java    |  166 -
 .../lang/parser/SSE_ParserCoreTokenManager.java | 1198 ---
 .../hpl/jena/sparql/sse/lang/parser/Token.java  |  149 -
 .../sparql/sse/lang/parser/TokenMgrError.java   |  165 -
 .../sparql/sse/writers/WriterBasePrefix.java    |  116 -
 .../hpl/jena/sparql/sse/writers/WriterExpr.java |  214 -
 .../jena/sparql/sse/writers/WriterGraph.java    |  133 -
 .../hpl/jena/sparql/sse/writers/WriterLib.java  |  113 -
 .../hpl/jena/sparql/sse/writers/WriterNode.java |  104 -
 .../hpl/jena/sparql/sse/writers/WriterOp.java   |  691 --
 .../hpl/jena/sparql/sse/writers/WriterPath.java |  305 -
 .../jena/sparql/sse/writers/WriterTable.java    |   73 -
 .../com/hp/hpl/jena/sparql/syntax/Element.java  |   64 -
 .../com/hp/hpl/jena/sparql/syntax/Element1.java |   36 -
 .../hpl/jena/sparql/syntax/ElementAssign.java   |   70 -
 .../hp/hpl/jena/sparql/syntax/ElementBind.java  |   70 -
 .../hp/hpl/jena/sparql/syntax/ElementData.java  |   93 -
 .../hpl/jena/sparql/syntax/ElementDataset.java  |   79 -
 .../hpl/jena/sparql/syntax/ElementExists.java   |   47 -
 .../hpl/jena/sparql/syntax/ElementFilter.java   |   52 -
 .../hp/hpl/jena/sparql/syntax/ElementGroup.java |  114 -
 .../hp/hpl/jena/sparql/syntax/ElementMinus.java |   58 -
 .../jena/sparql/syntax/ElementNamedGraph.java   |   73 -
 .../jena/sparql/syntax/ElementNotExists.java    |   47 -
 .../hpl/jena/sparql/syntax/ElementOptional.java |   58 -
 .../jena/sparql/syntax/ElementPathBlock.java    |   90 -
 .../hpl/jena/sparql/syntax/ElementService.java  |   81 -
 .../hpl/jena/sparql/syntax/ElementSubQuery.java |   53 -
 .../jena/sparql/syntax/ElementTriplesBlock.java |   90 -
 .../hp/hpl/jena/sparql/syntax/ElementUnion.java |   74 -
 .../hpl/jena/sparql/syntax/ElementVisitor.java  |   39 -
 .../jena/sparql/syntax/ElementVisitorBase.java  |   74 -
 .../hpl/jena/sparql/syntax/ElementWalker.java   |  216 -
 .../hp/hpl/jena/sparql/syntax/PatternVars.java  |   63 -
 .../jena/sparql/syntax/PatternVarsVisitor.java  |  105 -
 .../sparql/syntax/RecursiveElementVisitor.java  |  242 -
 .../com/hp/hpl/jena/sparql/syntax/Template.java |  116 -
 .../hpl/jena/sparql/syntax/TripleCollector.java |   30 -
 .../jena/sparql/syntax/TripleCollectorBGP.java  |   52 -
 .../jena/sparql/syntax/TripleCollectorMark.java |   34 -
 .../com/hp/hpl/jena/sparql/util/Closure.java    |  247 -
 .../hp/hpl/jena/sparql/util/ClosureTest.java    |   45 -
 .../com/hp/hpl/jena/sparql/util/Context.java    |  317 -
 .../com/hp/hpl/jena/sparql/util/Convert.java    |   85 -
 .../hp/hpl/jena/sparql/util/DatasetUtils.java   |  191 -
 .../hp/hpl/jena/sparql/util/DateTimeStruct.java |  418 --
 .../com/hp/hpl/jena/sparql/util/ExprUtils.java  |  282 -
 .../com/hp/hpl/jena/sparql/util/FmtUtils.java   |  632 --
 .../java/com/hp/hpl/jena/sparql/util/Iso.java   |  137 -
 .../com/hp/hpl/jena/sparql/util/IsoMatcher.java |  265 -
 .../com/hp/hpl/jena/sparql/util/IterLib.java    |   45 -
 .../hp/hpl/jena/sparql/util/LabelToNodeMap.java |   97 -
 .../com/hp/hpl/jena/sparql/util/Loader.java     |   81 -
 .../hp/hpl/jena/sparql/util/MappedLoader.java   |  107 -
 .../hpl/jena/sparql/util/MappingRegistry.java   |   43 -
 .../com/hp/hpl/jena/sparql/util/ModelUtils.java |  157 -
 .../java/com/hp/hpl/jena/sparql/util/Named.java |   24 -
 .../hp/hpl/jena/sparql/util/NodeComparator.java |   34 -
 .../hpl/jena/sparql/util/NodeFactoryExtra.java  |  250 -
 .../jena/sparql/util/NodeIsomorphismMap.java    |   51 -
 .../hp/hpl/jena/sparql/util/NodeToLabelMap.java |  102 -
 .../jena/sparql/util/NodeToLabelMapBNode.java   |   42 -
 .../com/hp/hpl/jena/sparql/util/NodeUtils.java  |  282 -
 .../jena/sparql/util/NotUniqueException.java    |   46 -
 .../hp/hpl/jena/sparql/util/PrefixMapping2.java |  216 -
 .../hpl/jena/sparql/util/PrintSerializable.java |   32 -
 .../jena/sparql/util/PrintSerializableBase.java |   46 -
 .../sparql/util/PropertyRequiredException.java  |   52 -
 .../hp/hpl/jena/sparql/util/QueryExecUtils.java |  368 -
 .../hpl/jena/sparql/util/QueryOutputUtils.java  |  117 -
 .../com/hp/hpl/jena/sparql/util/QueryUtils.java |  120 -
 .../hp/hpl/jena/sparql/util/ResultSetUtils.java |   95 -
 .../hp/hpl/jena/sparql/util/RomanNumeral.java   |  205 -
 .../jena/sparql/util/RomanNumeralDatatype.java  |   72 -
 .../hp/hpl/jena/sparql/util/StringUtils.java    |   78 -
 .../com/hp/hpl/jena/sparql/util/Symbol.java     |   63 -
 .../java/com/hp/hpl/jena/sparql/util/Timer.java |   71 -
 .../hpl/jena/sparql/util/TranslationTable.java  |   73 -
 .../hpl/jena/sparql/util/TripleComparator.java  |   44 -
 .../sparql/util/TypeNotUniqueException.java     |   31 -
 .../java/com/hp/hpl/jena/sparql/util/Utils.java |  184 -
 .../com/hp/hpl/jena/sparql/util/VarUtils.java   |   73 -
 .../com/hp/hpl/jena/sparql/util/Version.java    |  147 -
 .../hp/hpl/jena/sparql/util/graph/Findable.java |   30 -
 .../sparql/util/graph/FindableBasicPattern.java |   89 -
 .../jena/sparql/util/graph/FindableGraph.java   |   50 -
 .../hp/hpl/jena/sparql/util/graph/GNode.java    |   42 -
 .../sparql/util/graph/GraphContainerUtils.java  |  203 -
 .../hpl/jena/sparql/util/graph/GraphList.java   |  396 -
 .../sparql/util/graph/GraphListenerBase.java    |  123 -
 .../sparql/util/graph/GraphListenerCounter.java |  105 -
 .../sparql/util/graph/GraphLoadMonitor.java     |  148 -
 .../hpl/jena/sparql/util/graph/GraphSink.java   |   35 -
 .../hpl/jena/sparql/util/graph/GraphUtils.java  |  216 -
 .../com/hp/hpl/jena/sparql/vocabulary/DOAP.java |  229 -
 .../com/hp/hpl/jena/sparql/vocabulary/EARL.java |  137 -
 .../com/hp/hpl/jena/sparql/vocabulary/FOAF.java |  260 -
 .../jena/sparql/vocabulary/ListPFunction.java   |   75 -
 .../sparql/vocabulary/ResultSetGraphVocab.java  |   80 -
 .../hp/hpl/jena/sparql/vocabulary/TestDAWG.java |  113 -
 .../jena/sparql/vocabulary/TestManifest.java    |  131 -
 .../vocabulary/TestManifestUpdate_11.java       |   81 -
 .../jena/sparql/vocabulary/TestManifestX.java   |   79 -
 .../jena/sparql/vocabulary/TestManifest_11.java |   68 -
 .../jena/sparql/vocabulary/VocabTestQuery.java  |   59 -
 .../java/com/hp/hpl/jena/update/GraphStore.java |   39 -
 .../hp/hpl/jena/update/GraphStoreFactory.java   |   69 -
 .../java/com/hp/hpl/jena/update/Update.java     |   60 -
 .../com/hp/hpl/jena/update/UpdateAction.java    |  450 --
 .../com/hp/hpl/jena/update/UpdateException.java |   30 -
 .../hpl/jena/update/UpdateExecutionFactory.java |  412 --
 .../com/hp/hpl/jena/update/UpdateFactory.java   |  291 -
 .../com/hp/hpl/jena/update/UpdateProcessor.java |   42 -
 .../jena/update/UpdateProcessorStreaming.java   |   49 -
 .../com/hp/hpl/jena/update/UpdateRequest.java   |  102 -
 .../org/apache/jena/atlas/AtlasException.java   |   27 -
 .../apache/jena/atlas/RuntimeIOException.java   |   34 -
 .../org/apache/jena/atlas/csv/CSVParser.java    |    9 +-
 .../apache/jena/atlas/data/DistinctDataNet.java |    5 +-
 .../jena/atlas/data/ThresholdPolicyCount.java   |   10 -
 .../jena/atlas/data/ThresholdPolicyFactory.java |    8 +-
 .../jena/atlas/data/ThresholdPolicyMemory.java  |    5 -
 .../org/apache/jena/atlas/event/EventType.java  |    2 +-
 .../java/org/apache/jena/atlas/io/AWriter.java  |   43 -
 .../org/apache/jena/atlas/io/AWriterBase.java   |   33 -
 .../org/apache/jena/atlas/io/BlockUTF8.java     |  281 -
 .../apache/jena/atlas/io/BufferingWriter.java   |  180 -
 .../org/apache/jena/atlas/io/CharStream.java    |   31 -
 .../apache/jena/atlas/io/CharStreamBasic.java   |   58 -
 .../jena/atlas/io/CharStreamBuffered.java       |  166 -
 .../apache/jena/atlas/io/CharStreamReader.java  |   56 -
 .../jena/atlas/io/CharStreamSequence.java       |   47 -
 .../main/java/org/apache/jena/atlas/io/IO.java  |  347 -
 .../org/apache/jena/atlas/io/InStreamASCII.java |   89 -
 .../org/apache/jena/atlas/io/InStreamUTF8.java  |  254 -
 .../jena/atlas/io/IndentedLineBuffer.java       |   50 -
 .../apache/jena/atlas/io/IndentedWriter.java    |  366 -
 .../jena/atlas/io/InputStreamBuffered.java      |  104 -
 .../apache/jena/atlas/io/NullOutputStream.java  |   40 -
 .../org/apache/jena/atlas/io/OutStreamUTF8.java |  179 -
 .../org/apache/jena/atlas/io/OutputUtils.java   |   63 -
 .../apache/jena/atlas/io/PeekInputStream.java   |  234 -
 .../org/apache/jena/atlas/io/PeekReader.java    |  275 -
 .../org/apache/jena/atlas/io/PrintUtils.java    |   31 -
 .../org/apache/jena/atlas/io/Printable.java     |   24 -
 .../org/apache/jena/atlas/io/PrintableBase.java |   26 -
 .../org/apache/jena/atlas/io/StringWriterI.java |   30 -
 .../java/org/apache/jena/atlas/io/Writer2.java  |   97 -
 .../apache/jena/atlas/iterator/AccString.java   |   66 -
 .../apache/jena/atlas/iterator/Accumulate.java  |   27 -
 .../org/apache/jena/atlas/iterator/Action.java  |   24 -
 .../apache/jena/atlas/iterator/ActionCount.java |   31 -
 .../jena/atlas/iterator/ActionNothing.java      |   26 -
 .../apache/jena/atlas/iterator/ActionPrint.java |   41 -
 .../org/apache/jena/atlas/iterator/Filter.java  |   21 -
 .../atlas/iterator/FilterDistinctAdjacent.java  |   40 -
 .../jena/atlas/iterator/FilterOutNulls.java     |   32 -
 .../apache/jena/atlas/iterator/FilterStack.java |   67 -
 .../jena/atlas/iterator/FilterUnique.java       |   39 -
 .../org/apache/jena/atlas/iterator/Iter.java    |  954 ---
 .../jena/atlas/iterator/IteratorArray.java      |   92 -
 .../atlas/iterator/IteratorBlockingQueue.java   |   73 -
 .../jena/atlas/iterator/IteratorConcat.java     |  104 -
 .../jena/atlas/iterator/IteratorCons.java       |  122 -
 .../iterator/IteratorDelayedInitialization.java |   78 -
 .../jena/atlas/iterator/IteratorInteger.java    |   61 -
 .../atlas/iterator/IteratorResourceClosing.java |  107 -
 .../jena/atlas/iterator/IteratorSlotted.java    |  117 -
 .../jena/atlas/iterator/IteratorTruncate.java   |   79 -
 .../jena/atlas/iterator/IteratorWithBuffer.java |  132 -
 .../atlas/iterator/IteratorWithHistory.java     |  109 -
 .../jena/atlas/iterator/IteratorWrapper.java    |   41 -
 .../apache/jena/atlas/iterator/MapUtils.java    |   36 -
 .../jena/atlas/iterator/NullIterator.java       |   49 -
 .../jena/atlas/iterator/PeekIterator.java       |  100 -
 .../jena/atlas/iterator/PushbackIterator.java   |   62 -
 .../atlas/iterator/RepeatApplyIterator.java     |   87 -
 .../jena/atlas/iterator/SingletonIterator.java  |   51 -
 .../apache/jena/atlas/iterator/Transform.java   |   21 -
 .../jena/atlas/iterator/WrapperIterator.java    |   45 -
 .../org/apache/jena/atlas/json/JsonAccess.java  |  111 +-
 .../org/apache/jena/atlas/json/JsonArray.java   |    2 +-
 .../org/apache/jena/atlas/json/JsonBuilder.java |    4 +-
 .../atlas/json/io/parser/TokenizerJSON.java     |  697 +-
 .../io/parserjavacc/javacc/JSON_Parser.java     |    2 +-
 .../io/parserjavacc/javacc/JavaCharStream.java  |    2 +-
 .../io/parserjavacc/javacc/ParseException.java  |   30 +-
 .../json/io/parserjavacc/javacc/Token.java      |    2 +-
 .../io/parserjavacc/javacc/TokenMgrError.java   |    4 +-
 .../apache/jena/atlas/lib/ActionKeyValue.java   |   24 -
 .../org/apache/jena/atlas/lib/AlarmClock.java   |   69 -
 .../java/org/apache/jena/atlas/lib/Alg.java     |  239 -
 .../org/apache/jena/atlas/lib/Allocator.java    |   28 -
 .../org/apache/jena/atlas/lib/ArrayUtils.java   |   64 -
 .../java/org/apache/jena/atlas/lib/BitsInt.java |  309 -
 .../org/apache/jena/atlas/lib/BitsLong.java     |  311 -
 .../apache/jena/atlas/lib/ByteBufferLib.java    |  211 -
 .../java/org/apache/jena/atlas/lib/Bytes.java   |  393 -
 .../java/org/apache/jena/atlas/lib/Cache.java   |   51 -
 .../org/apache/jena/atlas/lib/CacheFactory.java |  107 -
 .../org/apache/jena/atlas/lib/CacheSet.java     |   30 -
 .../org/apache/jena/atlas/lib/CacheStats.java   |   28 -
 .../org/apache/jena/atlas/lib/Callback.java     |   24 -
 .../java/org/apache/jena/atlas/lib/Cell.java    |   99 -
 .../java/org/apache/jena/atlas/lib/Chars.java   |  261 -
 .../org/apache/jena/atlas/lib/Closeable.java    |   24 -
 .../apache/jena/atlas/lib/CollectionUtils.java  |   52 -
 .../org/apache/jena/atlas/lib/ColumnMap.java    |  254 -
 .../main/java/org/apache/jena/atlas/lib/DS.java |   45 -
 .../java/org/apache/jena/atlas/lib/FileOps.java |  239 -
 .../java/org/apache/jena/atlas/lib/Hex.java     |   97 -
 .../jena/atlas/lib/InternalErrorException.java  |   27 -
 .../java/org/apache/jena/atlas/lib/Lib.java     |  125 -
 .../org/apache/jena/atlas/lib/ListUtils.java    |  150 -
 .../java/org/apache/jena/atlas/lib/Map2.java    |  104 -
 .../org/apache/jena/atlas/lib/MapUtils.java     |   45 -
 .../org/apache/jena/atlas/lib/MultiMap.java     |  146 -
 .../apache/jena/atlas/lib/MultiMapToList.java   |   43 -
 .../apache/jena/atlas/lib/MultiMapToSet.java    |   47 -
 .../org/apache/jena/atlas/lib/MultiSet.java     |  218 -
 .../apache/jena/atlas/lib/NotImplemented.java   |   27 -
 .../org/apache/jena/atlas/lib/NumberUtils.java  |  133 -
 .../java/org/apache/jena/atlas/lib/Pair.java    |   62 -
 .../org/apache/jena/atlas/lib/Pingback.java     |   38 -
 .../java/org/apache/jena/atlas/lib/Pool.java    |   30 -
 .../org/apache/jena/atlas/lib/PoolBase.java     |   57 -
 .../jena/atlas/lib/PoolFiniteBlocking.java      |   52 -
 .../org/apache/jena/atlas/lib/PoolSync.java     |   53 -
 .../java/org/apache/jena/atlas/lib/Problem.java |   25 -
 .../apache/jena/atlas/lib/PropertiesSorted.java |   87 -
 .../apache/jena/atlas/lib/PropertyUtils.java    |  158 -
 .../org/apache/jena/atlas/lib/RandomLib.java    |   41 -
 .../java/org/apache/jena/atlas/lib/Ref.java     |   54 -
 .../java/org/apache/jena/atlas/lib/RefLong.java |   38 -
 .../org/apache/jena/atlas/lib/Registry.java     |   39 -
 .../jena/atlas/lib/ReverseComparator.java       |   38 -
 .../org/apache/jena/atlas/lib/SetUtils.java     |   84 -
 .../java/org/apache/jena/atlas/lib/Sink.java    |   29 -
 .../org/apache/jena/atlas/lib/SinkCounting.java |   41 -
 .../org/apache/jena/atlas/lib/SinkLogging.java  |   41 -
 .../org/apache/jena/atlas/lib/SinkNull.java     |   33 -
 .../org/apache/jena/atlas/lib/SinkPrint.java    |   45 -
 .../org/apache/jena/atlas/lib/SinkSplit.java    |   55 -
 .../apache/jena/atlas/lib/SinkToCollection.java |   38 -
 .../org/apache/jena/atlas/lib/SinkToQueue.java  |   52 -
 .../org/apache/jena/atlas/lib/SinkWrapper.java  |   44 -
 .../org/apache/jena/atlas/lib/StrUtils.java     |  295 -
 .../java/org/apache/jena/atlas/lib/Sync.java    |   24 -
 .../org/apache/jena/atlas/lib/SystemUtils.java  |   57 -
 .../java/org/apache/jena/atlas/lib/Trie.java    |  407 --
 .../java/org/apache/jena/atlas/lib/Tuple.java   |  153 -
 .../org/apache/jena/atlas/lib/TupleBuilder.java |   50 -
 .../java/org/apache/jena/atlas/lib/XMLLib.java  |   62 -
 .../org/apache/jena/atlas/lib/cache/Cache0.java |   80 -
 .../org/apache/jena/atlas/lib/cache/Cache1.java |  130 -
 .../apache/jena/atlas/lib/cache/CacheImpl.java  |   70 -
 .../apache/jena/atlas/lib/cache/CacheLRU.java   |   94 -
 .../jena/atlas/lib/cache/CacheSetLRU.java       |  115 -
 .../jena/atlas/lib/cache/CacheSetSync.java      |   55 -
 .../jena/atlas/lib/cache/CacheSetWrapper.java   |   59 -
 .../jena/atlas/lib/cache/CacheSimple.java       |  158 -
 .../jena/atlas/lib/cache/CacheStatsAtomic.java  |  120 -
 .../jena/atlas/lib/cache/CacheStatsSimple.java  |  109 -
 .../jena/atlas/lib/cache/CacheUnbounded.java    |   97 -
 .../jena/atlas/lib/cache/CacheWithGetter.java   |   47 -
 .../jena/atlas/lib/cache/CacheWrapper.java      |   62 -
 .../org/apache/jena/atlas/lib/cache/Getter.java |   25 -
 .../org/apache/jena/atlas/logging/FmtLog.java   |  162 -
 .../java/org/apache/jena/atlas/logging/Log.java |  116 -
 .../org/apache/jena/atlas/logging/LogCtl.java   |  284 -
 .../jena/atlas/logging/ProgressLogger.java      |  134 -
 .../logging/java/ConsoleHandlerStdout.java      |   75 -
 .../jena/atlas/logging/java/TextFormatter.java  |   53 -
 .../java/org/apache/jena/atlas/test/Gen.java    |   85 +-
 .../org/apache/jena/atlas/web/MediaType.java    |    4 +-
 .../atlas/web/auth/ServiceAuthenticator.java    |    6 +-
 .../main/java/org/apache/jena/query/ARQ.java    |  594 ++
 .../java/org/apache/jena/query/BIOInput.java    |   59 +
 .../java/org/apache/jena/query/Dataset.java     |  100 +
 .../org/apache/jena/query/DatasetAccessor.java  |   66 +
 .../jena/query/DatasetAccessorFactory.java      |   90 +
 .../org/apache/jena/query/DatasetFactory.java   |  268 +
 .../apache/jena/query/LabelExistsException.java |   32 +
 .../jena/query/ParameterizedSparqlString.java   | 1710 +++++
 .../main/java/org/apache/jena/query/Query.java  |  878 +++
 .../apache/jena/query/QueryBuildException.java  |   31 +
 .../jena/query/QueryCancelledException.java     |   25 +
 .../org/apache/jena/query/QueryException.java   |   33 +
 .../apache/jena/query/QueryExecException.java   |   31 +
 .../org/apache/jena/query/QueryExecution.java   |  204 +
 .../jena/query/QueryExecutionFactory.java       |  577 ++
 .../org/apache/jena/query/QueryFactory.java     |  232 +
 .../apache/jena/query/QueryFatalException.java  |   32 +
 .../apache/jena/query/QueryParseException.java  |   60 +
 .../org/apache/jena/query/QuerySolution.java    |   64 +
 .../org/apache/jena/query/QuerySolutionMap.java |   96 +
 .../org/apache/jena/query/QueryVisitor.java     |   47 +
 .../java/org/apache/jena/query/ReadWrite.java   |   25 +
 .../java/org/apache/jena/query/ResultSet.java   |   66 +
 .../org/apache/jena/query/ResultSetFactory.java |  451 ++
 .../apache/jena/query/ResultSetFormatter.java   |  683 ++
 .../apache/jena/query/ResultSetRewindable.java  |   28 +
 .../org/apache/jena/query/SortCondition.java    |  156 +
 .../main/java/org/apache/jena/query/Syntax.java |  170 +
 .../java/org/apache/jena/query/package.html     |   11 +
 .../main/java/org/apache/jena/riot/IO_Jena.java |    5 +-
 .../java/org/apache/jena/riot/RDFDataMgr.java   |   29 +-
 .../java/org/apache/jena/riot/RDFFormat.java    |    7 +-
 .../org/apache/jena/riot/RDFFormatVariant.java  |    6 +-
 .../java/org/apache/jena/riot/RDFLanguages.java |    3 +-
 .../org/apache/jena/riot/RDFParserRegistry.java |   12 +-
 .../org/apache/jena/riot/RDFWriterRegistry.java |   29 +-
 .../main/java/org/apache/jena/riot/RIOT.java    |    8 +-
 .../java/org/apache/jena/riot/ReaderRIOT.java   |    3 +-
 .../org/apache/jena/riot/ReaderRIOTBase.java    |    3 +-
 .../java/org/apache/jena/riot/ResultSetMgr.java |   53 +-
 .../org/apache/jena/riot/RiotException.java     |    2 +-
 .../java/org/apache/jena/riot/RiotReader.java   |    6 +-
 .../java/org/apache/jena/riot/RiotWriter.java   |    5 +-
 .../main/java/org/apache/jena/riot/SysRIOT.java |    5 +-
 .../org/apache/jena/riot/WriterDatasetRIOT.java |    5 +-
 .../org/apache/jena/riot/WriterGraphRIOT.java   |    5 +-
 .../java/org/apache/jena/riot/WriterRIOT.java   |    3 +-
 .../jena/riot/adapters/AdapterFileManager.java  |   21 +-
 .../apache/jena/riot/adapters/AdapterLib.java   |   27 +-
 .../riot/adapters/AdapterLocationMapper.java    |    5 +-
 .../jena/riot/adapters/AdapterLocator.java      |    4 +-
 .../jena/riot/adapters/AdapterRDFWriter.java    |    9 +-
 .../riot/adapters/FileManagerModelCache.java    |    5 +-
 .../jena/riot/adapters/JenaReadersWriters.java  |    3 +-
 .../riot/adapters/RDFReaderFactoryRIOT.java     |    5 +-
 .../jena/riot/adapters/RDFReaderRIOT.java       |   15 +-
 .../jena/riot/adapters/RDFReaderRIOT_ARP.java   |   15 +-
 .../jena/riot/adapters/RDFReaderRIOT_CSV.java   |    6 +-
 .../jena/riot/adapters/RDFReaderRIOT_Web.java   |    9 +-
 .../jena/riot/adapters/RDFWriterRIOT.java       |   15 +-
 .../jena/riot/checker/CheckerBlankNodes.java    |    3 +-
 .../apache/jena/riot/checker/CheckerIRI.java    |    4 +-
 .../jena/riot/checker/CheckerLiterals.java      |   17 +-
 .../apache/jena/riot/checker/CheckerVar.java    |    5 +-
 .../jena/riot/checker/CheckerVisitor.java       |   11 +-
 .../apache/jena/riot/checker/NodeChecker.java   |    2 +-
 .../jena/riot/checker/NodeCheckerNull.java      |    2 +-
 .../jena/riot/lang/BlankNodeAllocator.java      |    2 +-
 .../jena/riot/lang/BlankNodeAllocatorHash.java  |   33 +-
 .../jena/riot/lang/BlankNodeAllocatorLabel.java |    7 +-
 .../lang/BlankNodeAllocatorLabelEncoded.java    |    7 +-
 .../lang/BlankNodeAllocatorTraditional.java     |    4 +-
 .../jena/riot/lang/CollectorStreamBase.java     |    5 +-
 .../jena/riot/lang/CollectorStreamQuads.java    |    3 +-
 .../jena/riot/lang/CollectorStreamRDF.java      |    5 +-
 .../jena/riot/lang/CollectorStreamTriples.java  |    3 +-
 .../org/apache/jena/riot/lang/JsonLDReader.java |   18 +-
 .../org/apache/jena/riot/lang/LabelToNode.java  |    3 +-
 .../java/org/apache/jena/riot/lang/LangCSV.java |    9 +-
 .../org/apache/jena/riot/lang/LangEngine.java   |   12 +-
 .../org/apache/jena/riot/lang/LangNQuads.java   |    5 +-
 .../org/apache/jena/riot/lang/LangNTriples.java |    5 +-
 .../org/apache/jena/riot/lang/LangNTuple.java   |    3 +-
 .../org/apache/jena/riot/lang/LangRDFJSON.java  |    9 +-
 .../org/apache/jena/riot/lang/LangRDFXML.java   |   17 +-
 .../org/apache/jena/riot/lang/LangTriG.java     |    5 +-
 .../org/apache/jena/riot/lang/LangTurtle.java   |    5 +-
 .../apache/jena/riot/lang/LangTurtleBase.java   |    9 +-
 .../apache/jena/riot/lang/PipedQuadsStream.java |    5 +-
 .../jena/riot/lang/PipedTriplesStream.java      |    5 +-
 .../jena/riot/lang/PipedTuplesStream.java       |    7 +-
 .../org/apache/jena/riot/lang/ReaderTriX.java   |   22 +-
 .../jena/riot/lang/SinkQuadsToDataset.java      |    7 +-
 .../jena/riot/lang/SinkTriplesToGraph.java      |    9 +-
 .../jena/riot/other/BatchedStreamRDF.java       |   13 +-
 .../java/org/apache/jena/riot/other/GLib.java   |   69 +-
 .../jena/riot/other/StreamRDFBatchHandler.java  |    6 +-
 .../org/apache/jena/riot/out/EscapeProc.java    |   49 +
 .../org/apache/jena/riot/out/EscapeStr.java     |  117 -
 .../apache/jena/riot/out/JenaRDF2JSONLD.java    |    8 +-
 .../org/apache/jena/riot/out/JsonLDWriter.java  |   23 +-
 .../org/apache/jena/riot/out/NodeFmtLib.java    |   13 +-
 .../org/apache/jena/riot/out/NodeFormatter.java |    3 +-
 .../apache/jena/riot/out/NodeFormatterBase.java |   13 +-
 .../apache/jena/riot/out/NodeFormatterNT.java   |    4 +-
 .../apache/jena/riot/out/NodeFormatterTTL.java  |    5 +-
 .../org/apache/jena/riot/out/NodeToLabel.java   |    3 +-
 .../org/apache/jena/riot/out/OutputUtils.java   |   78 -
 .../jena/riot/out/SinkQuadBracedOutput.java     |   15 +-
 .../apache/jena/riot/out/SinkQuadOutput.java    |    5 +-
 .../apache/jena/riot/out/SinkTripleOutput.java  |    5 +-
 .../jena/riot/process/inf/InfFactory.java       |    3 +-
 .../process/inf/InferenceProcessorRDFS.java     |    4 +-
 .../inf/InferenceProcessorStreamRDF.java        |    7 +-
 .../riot/process/inf/InferenceSetupRDFS.java    |   13 +-
 .../process/normalize/CanonicalizeLiteral.java  |   19 +-
 .../riot/process/normalize/DatatypeHandler.java |    4 +-
 .../riot/process/normalize/NormalizeValue.java  |   14 +-
 .../riot/process/normalize/NormalizeValue2.java |    7 +-
 .../jena/riot/resultset/ResultSetReader.java    |    6 +-
 .../riot/resultset/ResultSetReaderRegistry.java |   13 +-
 .../jena/riot/resultset/ResultSetWriter.java    |    4 +-
 .../riot/resultset/ResultSetWriterRegistry.java |   11 +-
 .../org/apache/jena/riot/system/Checker.java    |    4 +-
 .../apache/jena/riot/system/IO_JenaReaders.java |   11 +-
 .../apache/jena/riot/system/IO_JenaWriters.java |   35 +-
 .../org/apache/jena/riot/system/IRILib.java     |  245 -
 .../apache/jena/riot/system/IRIResolver.java    |   36 +-
 .../jena/riot/system/IteratorStreamRDFText.java |    3 +-
 .../apache/jena/riot/system/JenaWriterBase.java |    9 +-
 .../jena/riot/system/LoggingStreamRDF.java      |    5 +-
 .../apache/jena/riot/system/ParserProfile.java  |    9 +-
 .../jena/riot/system/ParserProfileBase.java     |   13 +-
 .../jena/riot/system/ParserProfileChecker.java  |   13 +-
 .../org/apache/jena/riot/system/PrefixMap.java  |    3 +-
 .../apache/jena/riot/system/PrefixMapBase.java  |   28 +-
 .../jena/riot/system/PrefixMapFactory.java      |    2 +-
 .../apache/jena/riot/system/PrefixMapNull.java  |    3 +-
 .../jena/riot/system/PrefixMapUnmodifiable.java |    3 +-
 .../jena/riot/system/PrefixMapWrapper.java      |    3 +-
 .../org/apache/jena/riot/system/Prologue.java   |    2 +-
 .../org/apache/jena/riot/system/RiotChars.java  |   51 +-
 .../org/apache/jena/riot/system/RiotLib.java    |   27 +-
 .../riot/system/SerializationFactoryFinder.java |   11 +-
 .../org/apache/jena/riot/system/StreamOps.java  |   10 +-
 .../org/apache/jena/riot/system/StreamRDF.java  |    8 +-
 .../org/apache/jena/riot/system/StreamRDF2.java |    4 +-
 .../apache/jena/riot/system/StreamRDFBase.java  |    4 +-
 .../jena/riot/system/StreamRDFCollectOne.java   |    4 +-
 .../jena/riot/system/StreamRDFCountingBase.java |    5 +-
 .../apache/jena/riot/system/StreamRDFLib.java   |   28 +-
 .../jena/riot/system/StreamRDFWrapper.java      |    4 +-
 .../jena/riot/system/StreamRDFWriter.java       |    9 +-
 .../apache/jena/riot/system/StreamRowRDF.java   |    5 +-
 .../jena/riot/system/StreamRowRDFBase.java      |    4 +-
 .../riot/system/stream/JenaIOEnvironment.java   |   11 +-
 .../jena/riot/system/stream/LocationMapper.java |    9 +-
 .../riot/system/stream/LocatorClassLoader.java  |    4 +
 .../jena/riot/system/stream/LocatorFTP.java     |    1 +
 .../jena/riot/system/stream/LocatorFile.java    |    5 +-
 .../jena/riot/system/stream/LocatorHTTP.java    |    1 +
 .../jena/riot/system/stream/LocatorStdin.java   |    1 +
 .../jena/riot/system/stream/LocatorURL.java     |    3 +-
 .../jena/riot/system/stream/LocatorZip.java     |    5 +-
 .../org/apache/jena/riot/thrift/BinRDF.java     |   21 +-
 .../apache/jena/riot/thrift/Binding2Thrift.java |    7 +-
 .../jena/riot/thrift/StreamRDF2Thrift.java      |    7 +-
 .../apache/jena/riot/thrift/Thift2Binding.java  |   11 +-
 .../jena/riot/thrift/Thrift2StreamRDF.java      |    5 +-
 .../apache/jena/riot/thrift/ThriftConvert.java  |   25 +-
 .../jena/riot/thrift/WriterDatasetThrift.java   |    5 +-
 .../jena/riot/thrift/WriterGraphThrift.java     |    5 +-
 .../java/org/apache/jena/riot/tokens/Token.java |   33 +-
 .../org/apache/jena/riot/tokens/Tokenizer.java  |    1 -
 .../jena/riot/tokens/TokenizerFactory.java      |   40 +-
 .../apache/jena/riot/tokens/TokenizerText.java  |  128 +-
 .../java/org/apache/jena/riot/web/HttpOp.java   |  109 +-
 .../apache/jena/riot/web/HttpResponseLib.java   |   14 +-
 .../apache/jena/riot/writer/NQuadsWriter.java   |    7 +-
 .../apache/jena/riot/writer/NTriplesWriter.java |    7 +-
 .../org/apache/jena/riot/writer/NullWriter.java |    5 +-
 .../apache/jena/riot/writer/RDFJSONWriter.java  |   15 +-
 .../jena/riot/writer/RDFXMLAbbrevWriter.java    |    5 +-
 .../jena/riot/writer/RDFXMLPlainWriter.java     |    5 +-
 .../jena/riot/writer/StreamWriterTriX.java      |   35 +-
 .../org/apache/jena/riot/writer/TriGWriter.java |    7 +-
 .../apache/jena/riot/writer/TriGWriterBase.java |    5 +-
 .../jena/riot/writer/TriGWriterBlocks.java      |    3 +-
 .../apache/jena/riot/writer/TriGWriterFlat.java |    3 +-
 .../apache/jena/riot/writer/TurtleShell.java    |  188 +-
 .../apache/jena/riot/writer/TurtleWriter.java   |   28 +-
 .../jena/riot/writer/TurtleWriterBase.java      |    5 +-
 .../jena/riot/writer/TurtleWriterBlocks.java    |    3 +-
 .../jena/riot/writer/TurtleWriterFlat.java      |    3 +-
 .../apache/jena/riot/writer/WriterConst.java    |    4 +-
 .../jena/riot/writer/WriterDatasetRIOTBase.java |    5 +-
 .../jena/riot/writer/WriterGraphRIOTBase.java   |    5 +-
 .../jena/riot/writer/WriterStreamRDFBase.java   |    7 +-
 .../riot/writer/WriterStreamRDFBatched.java     |   13 +-
 .../jena/riot/writer/WriterStreamRDFBlocks.java |   15 +-
 .../jena/riot/writer/WriterStreamRDFFlat.java   |    7 +-
 .../jena/riot/writer/WriterStreamRDFPlain.java  |    7 +-
 .../org/apache/jena/riot/writer/WriterTriX.java |    9 +-
 .../org/apache/jena/sparql/ARQConstants.java    |  279 +
 .../org/apache/jena/sparql/ARQException.java    |   31 +
 .../jena/sparql/ARQInternalErrorException.java  |   33 +
 .../apache/jena/sparql/ARQNotImplemented.java   |   39 +
 .../org/apache/jena/sparql/AlreadyExists.java   |   29 +
 .../org/apache/jena/sparql/DoesNotExist.java    |   29 +
 .../jena/sparql/JenaTransactionException.java   |   29 +
 .../java/org/apache/jena/sparql/SystemARQ.java  |  159 +
 .../org/apache/jena/sparql/algebra/Algebra.java |  219 +
 .../jena/sparql/algebra/AlgebraGenerator.java   |  675 ++
 .../apache/jena/sparql/algebra/AlgebraQuad.java |  115 +
 .../jena/sparql/algebra/BeforeAfterVisitor.java |   82 +
 .../apache/jena/sparql/algebra/JoinType.java    |   21 +
 .../java/org/apache/jena/sparql/algebra/Op.java |   30 +
 .../apache/jena/sparql/algebra/OpAsQuery.java   |  841 +++
 .../jena/sparql/algebra/OpExtBuilder.java       |   30 +
 .../jena/sparql/algebra/OpExtRegistry.java      |   89 +
 .../org/apache/jena/sparql/algebra/OpLib.java   |   48 +
 .../jena/sparql/algebra/OpPrefixesUsed.java     |  112 +
 .../org/apache/jena/sparql/algebra/OpVars.java  |  427 ++
 .../apache/jena/sparql/algebra/OpVisitor.java   |   71 +
 .../jena/sparql/algebra/OpVisitorBase.java      |   94 +
 .../jena/sparql/algebra/OpVisitorByType.java    |  181 +
 .../sparql/algebra/OpVisitorByTypeBase.java     |   50 +
 .../apache/jena/sparql/algebra/OpWalker.java    |  131 +
 .../algebra/PropertyFunctionGenerator.java      |  241 +
 .../org/apache/jena/sparql/algebra/Table.java   |   42 +
 .../jena/sparql/algebra/TableFactory.java       |   58 +
 .../apache/jena/sparql/algebra/Transform.java   |   72 +
 .../jena/sparql/algebra/TransformBase.java      |  103 +
 .../jena/sparql/algebra/TransformCopy.java      |  164 +
 .../jena/sparql/algebra/TransformQuadGraph.java |  124 +
 .../sparql/algebra/TransformUnionQuery.java     |  119 +
 .../jena/sparql/algebra/TransformWrapper.java   |  111 +
 .../apache/jena/sparql/algebra/Transformer.java |  497 ++
 .../org/apache/jena/sparql/algebra/op/Op0.java  |   30 +
 .../org/apache/jena/sparql/algebra/op/Op1.java  |   40 +
 .../org/apache/jena/sparql/algebra/op/Op2.java  |   55 +
 .../apache/jena/sparql/algebra/op/OpAssign.java |  126 +
 .../apache/jena/sparql/algebra/op/OpBGP.java    |   70 +
 .../apache/jena/sparql/algebra/op/OpBase.java   |   79 +
 .../jena/sparql/algebra/op/OpConditional.java   |   65 +
 .../jena/sparql/algebra/op/OpDatasetNames.java  |   60 +
 .../apache/jena/sparql/algebra/op/OpDiff.java   |   55 +
 .../jena/sparql/algebra/op/OpDisjunction.java   |   97 +
 .../jena/sparql/algebra/op/OpDistinct.java      |   61 +
 .../sparql/algebra/op/OpDistinctReduced.java    |   28 +
 .../apache/jena/sparql/algebra/op/OpExt.java    |   97 +
 .../apache/jena/sparql/algebra/op/OpExtend.java |  130 +
 .../jena/sparql/algebra/op/OpExtendAssign.java  |   55 +
 .../apache/jena/sparql/algebra/op/OpFilter.java |  124 +
 .../apache/jena/sparql/algebra/op/OpGraph.java  |   63 +
 .../apache/jena/sparql/algebra/op/OpGroup.java  |   82 +
 .../apache/jena/sparql/algebra/op/OpJoin.java   |   91 +
 .../apache/jena/sparql/algebra/op/OpLabel.java  |   91 +
 .../jena/sparql/algebra/op/OpLeftJoin.java      |   75 +
 .../apache/jena/sparql/algebra/op/OpList.java   |   60 +
 .../apache/jena/sparql/algebra/op/OpMinus.java  |   55 +
 .../jena/sparql/algebra/op/OpModifier.java      |   38 +
 .../org/apache/jena/sparql/algebra/op/OpN.java  |   76 +
 .../apache/jena/sparql/algebra/op/OpNull.java   |   58 +
 .../apache/jena/sparql/algebra/op/OpOrder.java  |   72 +
 .../apache/jena/sparql/algebra/op/OpPath.java   |   75 +
 .../jena/sparql/algebra/op/OpProcedure.java     |  111 +
 .../jena/sparql/algebra/op/OpProject.java       |   70 +
 .../jena/sparql/algebra/op/OpPropFunc.java      |   96 +
 .../apache/jena/sparql/algebra/op/OpQuad.java   |  100 +
 .../jena/sparql/algebra/op/OpQuadBlock.java     |  141 +
 .../jena/sparql/algebra/op/OpQuadPattern.java   |  113 +
 .../jena/sparql/algebra/op/OpReduced.java       |   61 +
 .../jena/sparql/algebra/op/OpSequence.java      |   94 +
 .../jena/sparql/algebra/op/OpService.java       |   78 +
 .../apache/jena/sparql/algebra/op/OpSlice.java  |   73 +
 .../apache/jena/sparql/algebra/op/OpTable.java  |   77 +
 .../apache/jena/sparql/algebra/op/OpTopN.java   |   74 +
 .../apache/jena/sparql/algebra/op/OpTriple.java |  103 +
 .../apache/jena/sparql/algebra/op/OpUnion.java  |   60 +
 .../optimize/ExprTransformApplyTransform.java   |   60 +
 .../optimize/ExprTransformConstantFold.java     |  110 +
 .../optimize/ExprVisitorApplyVisitor.java       |   41 +
 .../algebra/optimize/OpVisitorExprPrepare.java  |   48 +
 .../jena/sparql/algebra/optimize/Optimize.java  |  304 +
 .../jena/sparql/algebra/optimize/Rewrite.java   |   26 +
 .../optimize/TransformDistinctToReduced.java    |  168 +
 .../algebra/optimize/TransformExpandOneOf.java  |  126 +
 .../optimize/TransformExtendCombine.java        |   84 +
 .../optimize/TransformFilterConjunction.java    |   53 +
 .../optimize/TransformFilterDisjunction.java    |  187 +
 .../optimize/TransformFilterEquality.java       |  411 ++
 .../optimize/TransformFilterImplicitJoin.java   |  488 ++
 .../optimize/TransformFilterInequality.java     |  416 ++
 .../optimize/TransformFilterPlacement.java      |  787 ++
 .../TransformFilterPlacementConservative.java   |  278 +
 .../optimize/TransformImplicitLeftJoin.java     |  426 ++
 .../algebra/optimize/TransformJoinStrategy.java |   86 +
 .../algebra/optimize/TransformMergeBGPs.java    |  119 +
 .../TransformOrderByDistinctApplication.java    |  173 +
 .../algebra/optimize/TransformPathFlattern.java |   61 +
 .../optimize/TransformPathFlatternStd.java      |  224 +
 .../algebra/optimize/TransformPattern2Join.java |   91 +
 .../optimize/TransformPromoteTableEmpty.java    |  166 +
 .../optimize/TransformPropertyFunction.java     |  105 +
 .../algebra/optimize/TransformRemoveLabels.java |   33 +
 .../algebra/optimize/TransformReorder.java      |   82 +
 .../algebra/optimize/TransformScopeRename.java  |  119 +
 .../algebra/optimize/TransformSimplify.java     |   65 +
 .../sparql/algebra/optimize/TransformTopN.java  |  225 +
 .../jena/sparql/algebra/table/Table1.java       |   90 +
 .../jena/sparql/algebra/table/TableBase.java    |  125 +
 .../jena/sparql/algebra/table/TableData.java    |   40 +
 .../jena/sparql/algebra/table/TableEmpty.java   |   66 +
 .../jena/sparql/algebra/table/TableN.java       |  104 +
 .../jena/sparql/algebra/table/TableUnit.java    |   71 +
 .../jena/sparql/algebra/table/TableWriter.java  |   74 +
 .../apache/jena/sparql/core/BasicPattern.java   |  121 +
 .../jena/sparql/core/ComparisonException.java   |   25 +
 .../apache/jena/sparql/core/DatasetChanges.java |   38 +
 .../jena/sparql/core/DatasetChangesBatched.java |  107 +
 .../jena/sparql/core/DatasetChangesCapture.java |   94 +
 .../jena/sparql/core/DatasetChangesCounter.java |   71 +
 .../jena/sparql/core/DatasetDescription.java    |  109 +
 .../apache/jena/sparql/core/DatasetGraph.java   |  135 +
 .../core/DatasetGraphAltDefaultGraph.java       |   65 +
 .../jena/sparql/core/DatasetGraphBase.java      |  195 +
 .../jena/sparql/core/DatasetGraphBaseFind.java  |   81 +
 .../jena/sparql/core/DatasetGraphCaching.java   |  175 +
 .../sparql/core/DatasetGraphCollection.java     |  108 +
 .../jena/sparql/core/DatasetGraphFactory.java   |   97 +
 .../jena/sparql/core/DatasetGraphMaker.java     |   49 +
 .../jena/sparql/core/DatasetGraphMap.java       |  125 +
 .../jena/sparql/core/DatasetGraphMonitor.java   |  203 +
 .../jena/sparql/core/DatasetGraphOne.java       |  166 +
 .../jena/sparql/core/DatasetGraphQuad.java      |   54 +
 .../jena/sparql/core/DatasetGraphReadOnly.java  |   89 +
 .../jena/sparql/core/DatasetGraphSimpleMem.java |  242 +
 .../sparql/core/DatasetGraphTrackActive.java    |  179 +
 .../sparql/core/DatasetGraphTriplesQuads.java   |   65 +
 .../sparql/core/DatasetGraphViewGraphs.java     |   48 +
 .../jena/sparql/core/DatasetGraphWithLock.java  |  173 +
 .../jena/sparql/core/DatasetGraphWrapper.java   |  158 +
 .../apache/jena/sparql/core/DatasetImpl.java    |  282 +
 .../jena/sparql/core/DatasetPrefixStorage.java  |   57 +
 .../jena/sparql/core/DynamicDatasets.java       |  133 +
 .../org/apache/jena/sparql/core/GraphView.java  |  161 +
 .../org/apache/jena/sparql/core/PathBlock.java  |   83 +
 .../org/apache/jena/sparql/core/Prologue.java   |  237 +
 .../java/org/apache/jena/sparql/core/Quad.java  |  219 +
 .../org/apache/jena/sparql/core/QuadAction.java |   40 +
 .../apache/jena/sparql/core/QuadPattern.java    |  103 +
 .../jena/sparql/core/QueryCheckException.java   |   29 +
 .../apache/jena/sparql/core/QueryCompare.java   |  191 +
 .../apache/jena/sparql/core/QueryHashCode.java  |  145 +
 .../jena/sparql/core/QuerySolutionBase.java     |   50 +
 .../apache/jena/sparql/core/ResultBinding.java  |   98 +
 .../org/apache/jena/sparql/core/Substitute.java |  294 +
 .../apache/jena/sparql/core/Transactional.java  |   46 +
 .../jena/sparql/core/TransactionalNull.java     |   58 +
 .../org/apache/jena/sparql/core/TriplePath.java |  138 +
 .../java/org/apache/jena/sparql/core/Var.java   |  196 +
 .../org/apache/jena/sparql/core/VarAlloc.java   |   58 +
 .../apache/jena/sparql/core/VarExprList.java    |  162 +
 .../java/org/apache/jena/sparql/core/Vars.java  |   51 +
 .../sparql/core/assembler/AssemblerUtils.java   |  128 +
 .../sparql/core/assembler/DatasetAssembler.java |  104 +
 .../assembler/DatasetAssemblerException.java    |   31 +
 .../core/assembler/DatasetAssemblerVocab.java   |   48 +
 .../assembler/DatasetDescriptionAssembler.java  |   54 +
 .../core/assembler/DatasetNullAssembler.java    |   61 +
 .../core/describe/DescribeBNodeClosure.java     |  100 +
 .../describe/DescribeBNodeClosureFactory.java   |   28 +
 .../sparql/core/describe/DescribeHandler.java   |   51 +
 .../core/describe/DescribeHandlerFactory.java   |   27 +
 .../core/describe/DescribeHandlerRegistry.java  |  101 +
 .../jena/sparql/engine/ExecutionContext.java    |  131 +
 .../org/apache/jena/sparql/engine/OpEval.java   |   31 +
 .../org/apache/jena/sparql/engine/Plan.java     |   37 +
 .../org/apache/jena/sparql/engine/PlanBase.java |   80 +
 .../org/apache/jena/sparql/engine/PlanOp.java   |   74 +
 .../jena/sparql/engine/QueryEngineBase.java     |  161 +
 .../jena/sparql/engine/QueryEngineFactory.java  |   92 +
 .../engine/QueryEngineFactoryWrapper.java       |   69 +
 .../jena/sparql/engine/QueryEngineRegistry.java |  151 +
 .../jena/sparql/engine/QueryExecutionBase.java  |  615 ++
 .../jena/sparql/engine/QueryIterator.java       |   38 +
 .../org/apache/jena/sparql/engine/Rename.java   |  188 +
 .../sparql/engine/ResultSetCheckCondition.java  |  111 +
 .../jena/sparql/engine/ResultSetStream.java     |  146 +
 .../apache/jena/sparql/engine/TableJoin.java    |  104 +
 .../jena/sparql/engine/binding/Binding.java     |   45 +
 .../jena/sparql/engine/binding/Binding0.java    |   51 +
 .../jena/sparql/engine/binding/Binding1.java    |   70 +
 .../jena/sparql/engine/binding/BindingBase.java |  229 +
 .../engine/binding/BindingComparator.java       |  177 +
 .../sparql/engine/binding/BindingFactory.java   |   64 +
 .../sparql/engine/binding/BindingFixed.java     |   80 +
 .../sparql/engine/binding/BindingHashMap.java   |  118 +
 .../engine/binding/BindingInputStream.java      |  236 +
 .../jena/sparql/engine/binding/BindingMap.java  |   38 +
 .../engine/binding/BindingOutputStream.java     |  193 +
 .../sparql/engine/binding/BindingProject.java   |   38 +
 .../engine/binding/BindingProjectBase.java      |   87 +
 .../engine/binding/BindingProjectNamed.java     |   36 +
 .../jena/sparql/engine/binding/BindingRoot.java |   35 +
 .../sparql/engine/binding/BindingUtils.java     |   97 +
 .../sparql/engine/binding/BindingWrapped.java   |   75 +
 .../sparql/engine/http/HttpContentType.java     |  112 +
 .../jena/sparql/engine/http/HttpParams.java     |   52 +
 .../jena/sparql/engine/http/HttpQuery.java      |  465 ++
 .../apache/jena/sparql/engine/http/Params.java  |  163 +
 .../sparql/engine/http/QueryEngineHTTP.java     |  809 ++
 .../sparql/engine/http/QueryExceptionHTTP.java  |  116 +
 .../apache/jena/sparql/engine/http/Service.java |  284 +
 .../sparql/engine/index/HashIndexTable.java     |  219 +
 .../jena/sparql/engine/index/IndexFactory.java  |   46 +
 .../jena/sparql/engine/index/IndexTable.java    |   35 +
 .../jena/sparql/engine/index/LinearIndex.java   |  113 +
 .../jena/sparql/engine/index/SetIndexTable.java |   70 +
 .../jena/sparql/engine/iterator/QueryIter.java  |  103 +
 .../jena/sparql/engine/iterator/QueryIter1.java |   87 +
 .../jena/sparql/engine/iterator/QueryIter2.java |   93 +
 .../engine/iterator/QueryIter2LoopOnLeft.java   |   82 +
 .../sparql/engine/iterator/QueryIterAssign.java |  100 +
 .../iterator/QueryIterAssignVarValue.java       |   83 +
 .../engine/iterator/QueryIterBlockTriples.java  |   96 +
 .../engine/iterator/QueryIterCommonParent.java  |   81 +
 .../sparql/engine/iterator/QueryIterConcat.java |  143 +
 .../engine/iterator/QueryIterConvert.java       |   72 +
 .../engine/iterator/QueryIterDefaulting.java    |   99 +
 .../sparql/engine/iterator/QueryIterDiff.java   |   55 +
 .../engine/iterator/QueryIterDistinct.java      |  148 +
 .../engine/iterator/QueryIterDistinctMem.java   |   53 +
 .../iterator/QueryIterDistinctReduced.java      |   80 +
 .../iterator/QueryIterDistinguishedVars.java    |   47 +
 .../engine/iterator/QueryIterExtendByVar.java   |   73 +
 .../engine/iterator/QueryIterFilterExpr.java    |   72 +
 .../sparql/engine/iterator/QueryIterGroup.java  |  202 +
 .../sparql/engine/iterator/QueryIterMinus.java  |   89 +
 .../engine/iterator/QueryIterNullIterator.java  |   58 +
 .../sparql/engine/iterator/QueryIterPath.java   |   60 +
 .../sparql/engine/iterator/QueryIterPeek.java   |   80 +
 .../engine/iterator/QueryIterPlainWrapper.java  |   77 +
 .../engine/iterator/QueryIterProcedure.java     |   90 +
 .../iterator/QueryIterProcessBinding.java       |   99 +
 .../engine/iterator/QueryIterProject.java       |   75 +
 .../engine/iterator/QueryIterProjectMerge.java  |  104 +
 .../engine/iterator/QueryIterReduced.java       |   53 +
 .../engine/iterator/QueryIterRepeatApply.java   |  126 +
 .../sparql/engine/iterator/QueryIterRoot.java   |   48 +
 .../engine/iterator/QueryIterSingleton.java     |   63 +
 .../sparql/engine/iterator/QueryIterSlice.java  |   97 +
 .../sparql/engine/iterator/QueryIterSort.java   |  108 +
 .../sparql/engine/iterator/QueryIterSub.java    |   60 +
 .../sparql/engine/iterator/QueryIterTopN.java   |  118 +
 .../engine/iterator/QueryIterTracked.java       |   63 +
 .../engine/iterator/QueryIterTriplePattern.java |  170 +
 .../sparql/engine/iterator/QueryIterYieldN.java |   84 +
 .../engine/iterator/QueryIteratorBase.java      |  265 +
 .../engine/iterator/QueryIteratorCaching.java   |   77 +
 .../engine/iterator/QueryIteratorCheck.java     |  107 +
 .../engine/iterator/QueryIteratorCloseable.java |   40 +
 .../engine/iterator/QueryIteratorCopy.java      |   90 +
 .../engine/iterator/QueryIteratorLogging.java   |   70 +
 .../engine/iterator/QueryIteratorMapped.java    |   80 +
 .../engine/iterator/QueryIteratorResultSet.java |   46 +
 .../engine/iterator/QueryIteratorTiming.java    |   86 +
 .../engine/iterator/QueryIteratorWrapper.java   |   73 +
 .../sparql/engine/main/ExecutionDispatch.java   |  334 +
 .../jena/sparql/engine/main/JoinClassifier.java |  180 +
 .../sparql/engine/main/LeftJoinClassifier.java  |  121 +
 .../jena/sparql/engine/main/OpExecutor.java     |  465 ++
 .../sparql/engine/main/OpExecutorFactory.java   |   23 +
 .../org/apache/jena/sparql/engine/main/QC.java  |   66 +
 .../sparql/engine/main/QueryEngineMain.java     |  105 +
 .../sparql/engine/main/QueryEngineMainQuad.java |   79 +
 .../jena/sparql/engine/main/StageBuilder.java   |  118 +
 .../jena/sparql/engine/main/StageGenerator.java |   49 +
 .../engine/main/StageGeneratorGeneric.java      |   85 +
 .../jena/sparql/engine/main/VarFinder.java      |  260 +
 .../engine/main/iterator/QueryIterGraph.java    |  208 +
 .../engine/main/iterator/QueryIterJoin.java     |   32 +
 .../engine/main/iterator/QueryIterJoinBase.java |   79 +
 .../engine/main/iterator/QueryIterLeftJoin.java |   32 +
 .../main/iterator/QueryIterOptionalIndex.java   |   64 +
 .../engine/main/iterator/QueryIterService.java  |   77 +
 .../engine/main/iterator/QueryIterUnion.java    |   76 +
 .../jena/sparql/engine/optimizer/Pattern.java   |   63 +
 .../sparql/engine/optimizer/StatsMatcher.java   |  511 ++
 .../optimizer/reorder/PatternElements.java      |   55 +
 .../engine/optimizer/reorder/PatternTriple.java |   75 +
 .../engine/optimizer/reorder/ReorderFixed.java  |  109 +
 .../optimizer/reorder/ReorderFixedAlt.java      |   79 +
 .../engine/optimizer/reorder/ReorderLib.java    |   79 +
 .../engine/optimizer/reorder/ReorderProc.java   |   31 +
 .../optimizer/reorder/ReorderProcIndexes.java   |   69 +
 .../reorder/ReorderTransformation.java          |   30 +
 .../ReorderTransformationSubstitution.java      |  300 +
 .../optimizer/reorder/ReorderWeighted.java      |   37 +
 .../engine/optimizer/reorder/Reorderable.java   |   25 +
 .../org/apache/jena/sparql/engine/ref/Eval.java |  287 +
 .../jena/sparql/engine/ref/Evaluator.java       |   68 +
 .../sparql/engine/ref/EvaluatorDispatch.java    |  346 +
 .../sparql/engine/ref/EvaluatorFactory.java     |   29 +
 .../jena/sparql/engine/ref/EvaluatorSimple.java |  343 +
 .../jena/sparql/engine/ref/QueryEngineRef.java  |  106 +
 .../sparql/engine/ref/QueryEngineRefQuad.java   |   82 +
 .../java/org/apache/jena/sparql/expr/E_Add.java |   47 +
 .../org/apache/jena/sparql/expr/E_BNode.java    |   99 +
 .../org/apache/jena/sparql/expr/E_Bound.java    |   52 +
 .../org/apache/jena/sparql/expr/E_Call.java     |  132 +
 .../org/apache/jena/sparql/expr/E_Cast.java     |   49 +
 .../org/apache/jena/sparql/expr/E_Coalesce.java |   61 +
 .../apache/jena/sparql/expr/E_Conditional.java  |   68 +
 .../org/apache/jena/sparql/expr/E_Datatype.java |   38 +
 .../apache/jena/sparql/expr/E_DateTimeDay.java  |   38 +
 .../jena/sparql/expr/E_DateTimeHours.java       |   38 +
 .../jena/sparql/expr/E_DateTimeMinutes.java     |   38 +
 .../jena/sparql/expr/E_DateTimeMonth.java       |   38 +
 .../jena/sparql/expr/E_DateTimeSeconds.java     |   38 +
 .../apache/jena/sparql/expr/E_DateTimeTZ.java   |   38 +
 .../jena/sparql/expr/E_DateTimeTimezone.java    |   38 +
 .../apache/jena/sparql/expr/E_DateTimeYear.java |   38 +
 .../org/apache/jena/sparql/expr/E_Divide.java   |   47 +
 .../org/apache/jena/sparql/expr/E_Equals.java   |   46 +
 .../org/apache/jena/sparql/expr/E_Exists.java   |   91 +
 .../org/apache/jena/sparql/expr/E_Function.java |  137 +
 .../jena/sparql/expr/E_FunctionDynamic.java     |   43 +
 .../apache/jena/sparql/expr/E_GreaterThan.java  |   42 +
 .../jena/sparql/expr/E_GreaterThanOrEqual.java  |   43 +
 .../java/org/apache/jena/sparql/expr/E_IRI.java |   64 +
 .../org/apache/jena/sparql/expr/E_IsBlank.java  |   38 +
 .../org/apache/jena/sparql/expr/E_IsIRI.java    |   43 +
 .../apache/jena/sparql/expr/E_IsLiteral.java    |   43 +
 .../apache/jena/sparql/expr/E_IsNumeric.java    |   43 +
 .../org/apache/jena/sparql/expr/E_IsURI.java    |   40 +
 .../org/apache/jena/sparql/expr/E_Lang.java     |   38 +
 .../apache/jena/sparql/expr/E_LangMatches.java  |   41 +
 .../org/apache/jena/sparql/expr/E_LessThan.java |   42 +
 .../jena/sparql/expr/E_LessThanOrEqual.java     |   42 +
 .../apache/jena/sparql/expr/E_LogicalAnd.java   |   95 +
 .../apache/jena/sparql/expr/E_LogicalNot.java   |   45 +
 .../apache/jena/sparql/expr/E_LogicalOr.java    |  110 +
 .../java/org/apache/jena/sparql/expr/E_MD5.java |   36 +
 .../org/apache/jena/sparql/expr/E_Multiply.java |   46 +
 .../apache/jena/sparql/expr/E_NotEquals.java    |   46 +
 .../apache/jena/sparql/expr/E_NotExists.java    |   98 +
 .../org/apache/jena/sparql/expr/E_NotOneOf.java |   58 +
 .../java/org/apache/jena/sparql/expr/E_Now.java |   38 +
 .../org/apache/jena/sparql/expr/E_NumAbs.java   |   38 +
 .../apache/jena/sparql/expr/E_NumCeiling.java   |   38 +
 .../org/apache/jena/sparql/expr/E_NumFloor.java |   38 +
 .../org/apache/jena/sparql/expr/E_NumRound.java |   38 +
 .../org/apache/jena/sparql/expr/E_OneOf.java    |   59 +
 .../apache/jena/sparql/expr/E_OneOfBase.java    |   92 +
 .../org/apache/jena/sparql/expr/E_Random.java   |   46 +
 .../org/apache/jena/sparql/expr/E_Regex.java    |  129 +
 .../org/apache/jena/sparql/expr/E_SHA1.java     |   36 +
 .../org/apache/jena/sparql/expr/E_SHA224.java   |   36 +
 .../org/apache/jena/sparql/expr/E_SHA256.java   |   36 +
 .../org/apache/jena/sparql/expr/E_SHA384.java   |   36 +
 .../org/apache/jena/sparql/expr/E_SHA512.java   |   36 +
 .../org/apache/jena/sparql/expr/E_SameTerm.java |   41 +
 .../java/org/apache/jena/sparql/expr/E_Str.java |   38 +
 .../org/apache/jena/sparql/expr/E_StrAfter.java |   38 +
 .../apache/jena/sparql/expr/E_StrBefore.java    |   38 +
 .../apache/jena/sparql/expr/E_StrConcat.java    |   48 +
 .../apache/jena/sparql/expr/E_StrContains.java  |   38 +
 .../apache/jena/sparql/expr/E_StrDatatype.java  |   44 +
 .../jena/sparql/expr/E_StrEncodeForURI.java     |   41 +
 .../apache/jena/sparql/expr/E_StrEndsWith.java  |   38 +
 .../org/apache/jena/sparql/expr/E_StrLang.java  |   43 +
 .../apache/jena/sparql/expr/E_StrLength.java    |   38 +
 .../apache/jena/sparql/expr/E_StrLowerCase.java |   38 +
 .../apache/jena/sparql/expr/E_StrReplace.java   |   82 +
 .../jena/sparql/expr/E_StrStartsWith.java       |   38 +
 .../apache/jena/sparql/expr/E_StrSubstring.java |   52 +
 .../org/apache/jena/sparql/expr/E_StrUUID.java  |   45 +
 .../apache/jena/sparql/expr/E_StrUpperCase.java |   38 +
 .../org/apache/jena/sparql/expr/E_Subtract.java |   47 +
 .../java/org/apache/jena/sparql/expr/E_URI.java |   43 +
 .../org/apache/jena/sparql/expr/E_UUID.java     |   45 +
 .../apache/jena/sparql/expr/E_UnaryMinus.java   |   39 +
 .../apache/jena/sparql/expr/E_UnaryPlus.java    |   39 +
 .../org/apache/jena/sparql/expr/E_Version.java  |   45 +
 .../java/org/apache/jena/sparql/expr/Expr.java  |  125 +
 .../apache/jena/sparql/expr/ExprAggregator.java |  147 +
 .../org/apache/jena/sparql/expr/ExprBuild.java  |   44 +
 .../org/apache/jena/sparql/expr/ExprDigest.java |  128 +
 .../jena/sparql/expr/ExprEvalException.java     |   33 +
 .../jena/sparql/expr/ExprEvalTypeException.java |   29 +
 .../apache/jena/sparql/expr/ExprException.java  |   32 +
 .../apache/jena/sparql/expr/ExprFunction.java   |  126 +
 .../apache/jena/sparql/expr/ExprFunction0.java  |   73 +
 .../apache/jena/sparql/expr/ExprFunction1.java  |   98 +
 .../apache/jena/sparql/expr/ExprFunction2.java  |  112 +
 .../apache/jena/sparql/expr/ExprFunction3.java  |  122 +
 .../apache/jena/sparql/expr/ExprFunctionN.java  |  124 +
 .../apache/jena/sparql/expr/ExprFunctionOp.java |   99 +
 .../org/apache/jena/sparql/expr/ExprLib.java    |  162 +
 .../org/apache/jena/sparql/expr/ExprList.java   |  159 +
 .../org/apache/jena/sparql/expr/ExprNode.java   |  125 +
 .../sparql/expr/ExprNotComparableException.java |   25 +
 .../org/apache/jena/sparql/expr/ExprSystem.java |   53 +
 .../apache/jena/sparql/expr/ExprTransform.java  |   34 +
 .../jena/sparql/expr/ExprTransformBase.java     |   34 +
 .../jena/sparql/expr/ExprTransformCopy.java     |  154 +
 .../jena/sparql/expr/ExprTransformOp.java       |   26 +
 .../sparql/expr/ExprTransformSubstitute.java    |   68 +
 .../jena/sparql/expr/ExprTransformer.java       |  208 +
 .../jena/sparql/expr/ExprTypeException.java     |   31 +
 .../jena/sparql/expr/ExprUndefException.java    |   31 +
 .../org/apache/jena/sparql/expr/ExprVar.java    |  132 +
 .../org/apache/jena/sparql/expr/ExprVars.java   |  127 +
 .../apache/jena/sparql/expr/ExprVisitor.java    |   38 +
 .../jena/sparql/expr/ExprVisitorBase.java       |   47 +
 .../jena/sparql/expr/ExprVisitorFunction.java   |   36 +
 .../org/apache/jena/sparql/expr/ExprWalker.java |  119 +
 .../apache/jena/sparql/expr/FunctionLabel.java  |   27 +
 .../org/apache/jena/sparql/expr/NodeValue.java  | 1253 ++++
 .../apache/jena/sparql/expr/RegexEngine.java    |   27 +
 .../org/apache/jena/sparql/expr/RegexJava.java  |   83 +
 .../apache/jena/sparql/expr/RegexXerces.java    |   49 +
 .../sparql/expr/ValueSpaceClassification.java   |   40 +
 .../sparql/expr/VariableNotBoundException.java  |   31 +
 .../jena/sparql/expr/aggregate/Accumulator.java |   34 +
 .../expr/aggregate/AccumulatorDistinctAll.java  |   43 +
 .../expr/aggregate/AccumulatorDistinctExpr.java |   75 +
 .../sparql/expr/aggregate/AccumulatorExpr.java  |   75 +
 .../expr/aggregate/AccumulatorFactory.java      |   31 +
 .../jena/sparql/expr/aggregate/AggAvg.java      |  110 +
 .../sparql/expr/aggregate/AggAvgDistinct.java   |  103 +
 .../jena/sparql/expr/aggregate/AggCount.java    |   84 +
 .../sparql/expr/aggregate/AggCountDistinct.java |   87 +
 .../jena/sparql/expr/aggregate/AggCountVar.java |   80 +
 .../expr/aggregate/AggCountVarDistinct.java     |   82 +
 .../jena/sparql/expr/aggregate/AggCustom.java   |  170 +
 .../sparql/expr/aggregate/AggGroupConcat.java   |  165 +
 .../expr/aggregate/AggGroupConcatDistinct.java  |  116 +
 .../jena/sparql/expr/aggregate/AggMax.java      |   43 +
 .../jena/sparql/expr/aggregate/AggMaxBase.java  |   77 +
 .../sparql/expr/aggregate/AggMaxDistinct.java   |   43 +
 .../jena/sparql/expr/aggregate/AggMin.java      |   43 +
 .../jena/sparql/expr/aggregate/AggMinBase.java  |   77 +
 .../sparql/expr/aggregate/AggMinDistinct.java   |   44 +
 .../jena/sparql/expr/aggregate/AggNull.java     |   74 +
 .../jena/sparql/expr/aggregate/AggSample.java   |   83 +
 .../expr/aggregate/AggSampleDistinct.java       |   81 +
 .../jena/sparql/expr/aggregate/AggSum.java      |   91 +
 .../sparql/expr/aggregate/AggSumDistinct.java   |   91 +
 .../expr/aggregate/AggregateRegistry.java       |   70 +
 .../jena/sparql/expr/aggregate/Aggregator.java  |   61 +
 .../sparql/expr/aggregate/AggregatorBase.java   |  183 +
 .../expr/aggregate/AggregatorFactory.java       |   71 +
 .../sparql/expr/nodevalue/NodeFunctions.java    |  478 ++
 .../sparql/expr/nodevalue/NodeValueBoolean.java |   52 +
 .../jena/sparql/expr/nodevalue/NodeValueDT.java |   91 +
 .../sparql/expr/nodevalue/NodeValueDecimal.java |   73 +
 .../sparql/expr/nodevalue/NodeValueDouble.java  |   68 +
 .../expr/nodevalue/NodeValueDuration.java       |   55 +
 .../sparql/expr/nodevalue/NodeValueFloat.java   |   64 +
 .../sparql/expr/nodevalue/NodeValueInteger.java |   79 +
 .../sparql/expr/nodevalue/NodeValueNode.java    |   40 +
 .../sparql/expr/nodevalue/NodeValueOps.java     |  316 +
 .../sparql/expr/nodevalue/NodeValueString.java  |   62 +
 .../sparql/expr/nodevalue/NodeValueVisitor.java |   41 +
 .../jena/sparql/expr/nodevalue/NumericType.java |   21 +
 .../jena/sparql/expr/nodevalue/XSDFuncOp.java   | 1413 ++++
 .../apache/jena/sparql/function/CastXSD.java    |  135 +
 .../jena/sparql/function/CastXSD_Boolean.java   |   82 +
 .../jena/sparql/function/CastXSD_DateTime.java  |   54 +
 .../jena/sparql/function/CastXSD_Numeric.java   |   64 +
 .../apache/jena/sparql/function/Function.java   |   50 +
 .../jena/sparql/function/FunctionBase.java      |   87 +
 .../jena/sparql/function/FunctionBase0.java     |   55 +
 .../jena/sparql/function/FunctionBase1.java     |   57 +
 .../jena/sparql/function/FunctionBase2.java     |   59 +
 .../jena/sparql/function/FunctionBase3.java     |   59 +
 .../jena/sparql/function/FunctionBase4.java     |   61 +
 .../jena/sparql/function/FunctionEnv.java       |   41 +
 .../jena/sparql/function/FunctionEnvBase.java   |   83 +
 .../jena/sparql/function/FunctionFactory.java   |   35 +
 .../sparql/function/FunctionFactoryAuto.java    |   45 +
 .../jena/sparql/function/FunctionRegistry.java  |  123 +
 .../jena/sparql/function/StandardFunctions.java |  142 +
 .../jena/sparql/function/library/FN_Abs.java    |   34 +
 .../jena/sparql/function/library/FN_BEV.java    |   34 +
 .../sparql/function/library/FN_Ceiling.java     |   34 +
 .../function/library/FN_DayFromDateTime.java    |   33 +
 .../function/library/FN_DaysFromDuration.java   |   33 +
 .../jena/sparql/function/library/FN_Floor.java  |   35 +
 .../function/library/FN_HoursFromDateTime.java  |   33 +
 .../function/library/FN_HoursFromDuration.java  |   33 +
 .../sparql/function/library/FN_Matches.java     |   74 +
 .../library/FN_MinutesFromDateTime.java         |   33 +
 .../library/FN_MinutesFromDuration.java         |   33 +
 .../function/library/FN_MonthFromDateTime.java  |   33 +
 .../function/library/FN_MonthsFromDuration.java |   33 +
 .../jena/sparql/function/library/FN_Not.java    |   34 +
 .../jena/sparql/function/library/FN_Round.java  |   34 +
 .../library/FN_SecondsFromDateTime.java         |   33 +
 .../library/FN_SecondsFromDuration.java         |   33 +
 .../sparql/function/library/FN_StrAfter.java    |   36 +
 .../sparql/function/library/FN_StrBefore.java   |   36 +
 .../sparql/function/library/FN_StrConcat.java   |   51 +
 .../sparql/function/library/FN_StrContains.java |   36 +
 .../function/library/FN_StrEncodeForURI.java    |   33 +
 .../sparql/function/library/FN_StrEndsWith.java |   36 +
 .../sparql/function/library/FN_StrLength.java   |   36 +
 .../function/library/FN_StrLowerCase.java       |   36 +
 .../function/library/FN_StrStartsWith.java      |   36 +
 .../function/library/FN_StrSubstring.java       |   63 +
 .../function/library/FN_StrUpperCase.java       |   36 +
 .../library/FN_TimezoneFromDateTime.java        |   33 +
 .../function/library/FN_YearFromDateTime.java   |   33 +
 .../function/library/FN_YearsFromDuration.java  |   34 +
 .../jena/sparql/function/library/SystemVar.java |   61 +
 .../jena/sparql/function/library/bnode.java     |   41 +
 .../jena/sparql/function/library/date.java      |   60 +
 .../apache/jena/sparql/function/library/e.java  |   33 +
 .../jena/sparql/function/library/eval.java      |   71 +
 .../sparql/function/library/evenInteger.java    |   42 +
 .../jena/sparql/function/library/langeq.java    |   34 +
 .../library/leviathan/LeviathanConstants.java   |   39 +
 .../function/library/leviathan/cartesian.java   |   62 +
 .../sparql/function/library/leviathan/cos.java  |   31 +
 .../sparql/function/library/leviathan/cos1.java |   31 +
 .../function/library/leviathan/cosec.java       |   32 +
 .../function/library/leviathan/cosec1.java      |   32 +
 .../sparql/function/library/leviathan/cot.java  |   33 +
 .../sparql/function/library/leviathan/cot1.java |   32 +
 .../sparql/function/library/leviathan/cube.java |   49 +
 .../library/leviathan/degreesToRadians.java     |   31 +
 .../sparql/function/library/leviathan/e.java    |   31 +
 .../function/library/leviathan/factorial.java   |   53 +
 .../sparql/function/library/leviathan/ln.java   |   31 +
 .../sparql/function/library/leviathan/log.java  |   57 +
 .../function/library/leviathan/md5hash.java     |   35 +
 .../sparql/function/library/leviathan/pow.java  |   49 +
 .../function/library/leviathan/pythagoras.java  |   34 +
 .../library/leviathan/radiansToDegrees.java     |   31 +
 .../function/library/leviathan/reciprocal.java  |   31 +
 .../sparql/function/library/leviathan/rnd.java  |   69 +
 .../sparql/function/library/leviathan/root.java |   34 +
 .../sparql/function/library/leviathan/sec.java  |   32 +
 .../sparql/function/library/leviathan/sec1.java |   32 +
 .../function/library/leviathan/sha256hash.java  |   35 +
 .../sparql/function/library/leviathan/sin.java  |   31 +
 .../sparql/function/library/leviathan/sin1.java |   31 +
 .../sparql/function/library/leviathan/sq.java   |   49 +
 .../sparql/function/library/leviathan/sqrt.java |   31 +
 .../sparql/function/library/leviathan/tan.java  |   31 +
 .../sparql/function/library/leviathan/tan1.java |   31 +
 .../sparql/function/library/leviathan/ten.java  |   31 +
 .../jena/sparql/function/library/localname.java |   42 +
 .../jena/sparql/function/library/max.java       |   36 +
 .../jena/sparql/function/library/min.java       |   36 +
 .../jena/sparql/function/library/namespace.java |   42 +
 .../jena/sparql/function/library/now.java       |   30 +
 .../apache/jena/sparql/function/library/pi.java |   32 +
 .../jena/sparql/function/library/print.java     |   35 +
 .../jena/sparql/function/library/sha1sum.java   |   48 +
 .../jena/sparql/function/library/sqrt.java      |   35 +
 .../jena/sparql/function/library/strjoin.java   |   69 +
 .../jena/sparql/function/library/strlen.java    |   23 +
 .../jena/sparql/function/library/struuid.java   |   36 +
 .../jena/sparql/function/library/substr.java    |   24 +
 .../jena/sparql/function/library/substring.java |   63 +
 .../jena/sparql/function/library/uuid.java      |   36 +
 .../jena/sparql/function/library/wait.java      |   38 +
 .../function/user/ExprTransformExpand.java      |   90 +
 .../function/user/UserDefinedFunction.java      |   92 +
 .../user/UserDefinedFunctionDefinition.java     |  106 +
 .../user/UserDefinedFunctionFactory.java        |  243 +
 .../apache/jena/sparql/graph/GraphDataBag.java  |  125 +
 .../jena/sparql/graph/GraphDefaultDataBag.java  |   43 +
 .../jena/sparql/graph/GraphDistinctDataBag.java |   44 +
 .../apache/jena/sparql/graph/GraphFactory.java  |   91 +
 .../apache/jena/sparql/graph/GraphMemPlain.java |  181 +
 .../org/apache/jena/sparql/graph/GraphOps.java  |   88 +
 .../sparql/graph/GraphPrefixesProjection.java   |  111 +
 .../apache/jena/sparql/graph/GraphReadOnly.java |   55 +
 .../apache/jena/sparql/graph/GraphSPARQL.java   |  206 +
 .../jena/sparql/graph/GraphSPARQLService.java   |  130 +
 .../jena/sparql/graph/GraphUnionRead.java       |   76 +
 .../apache/jena/sparql/graph/GraphWrapper.java  |  146 +
 .../org/apache/jena/sparql/graph/NodeConst.java |   48 +
 .../apache/jena/sparql/graph/NodeTransform.java |   29 +
 .../jena/sparql/graph/NodeTransformLib.java     |  243 +
 .../jena/sparql/graph/NodeTransformOp.java      |  218 +
 .../jena/sparql/graph/UnmodifiableGraph.java    |   42 +
 .../org/apache/jena/sparql/lang/ParserARQ.java  |  125 +
 .../jena/sparql/lang/ParserARQUpdate.java       |   91 +
 .../org/apache/jena/sparql/lang/ParserBase.java |  563 ++
 .../apache/jena/sparql/lang/ParserSPARQL10.java |  124 +
 .../apache/jena/sparql/lang/ParserSPARQL11.java |  125 +
 .../jena/sparql/lang/ParserSPARQL11Update.java  |   89 +
 .../apache/jena/sparql/lang/SPARQLParser.java   |   55 +
 .../jena/sparql/lang/SPARQLParserBase.java      |  320 +
 .../jena/sparql/lang/SPARQLParserFactory.java   |   30 +
 .../jena/sparql/lang/SPARQLParserRegistry.java  |  145 +
 .../apache/jena/sparql/lang/SyntaxVarScope.java |  311 +
 .../apache/jena/sparql/lang/UpdateParser.java   |   62 +
 .../jena/sparql/lang/UpdateParserFactory.java   |   30 +
 .../jena/sparql/lang/UpdateParserRegistry.java  |  136 +
 .../apache/jena/sparql/lang/arq/ARQParser.java  | 6917 ++++++++++++++++++
 .../jena/sparql/lang/arq/ARQParserBase.java     |   70 +
 .../sparql/lang/arq/ARQParserConstants.java     |  633 ++
 .../sparql/lang/arq/ARQParserTokenManager.java  | 3895 ++++++++++
 .../jena/sparql/lang/arq/JavaCharStream.java    |  617 ++
 .../jena/sparql/lang/arq/ParseException.java    |  187 +
 .../org/apache/jena/sparql/lang/arq/Token.java  |  131 +
 .../jena/sparql/lang/arq/TokenMgrError.java     |  147 +
 .../sparql/lang/sparql_10/JavaCharStream.java   |  635 ++
 .../sparql/lang/sparql_10/ParseException.java   |  209 +
 .../sparql/lang/sparql_10/SPARQLParser10.java   | 2323 ++++++
 .../lang/sparql_10/SPARQLParser10Base.java      |   26 +
 .../lang/sparql_10/SPARQLParser10Constants.java |  351 +
 .../sparql_10/SPARQLParser10TokenManager.java   | 2459 +++++++
 .../jena/sparql/lang/sparql_10/Token.java       |  149 +
 .../sparql/lang/sparql_10/TokenMgrError.java    |  165 +
 .../sparql/lang/sparql_11/JavaCharStream.java   |  617 ++
 .../sparql/lang/sparql_11/ParseException.java   |  187 +
 .../sparql/lang/sparql_11/SPARQLParser11.java   | 5118 +++++++++++++
 .../lang/sparql_11/SPARQLParser11Base.java      |   26 +
 .../lang/sparql_11/SPARQLParser11Constants.java |  612 ++
 .../sparql_11/SPARQLParser11TokenManager.java   | 3830 ++++++++++
 .../jena/sparql/lang/sparql_11/Token.java       |  131 +
 .../sparql/lang/sparql_11/TokenMgrError.java    |  147 +
 .../org/apache/jena/sparql/lib/Metadata.java    |  111 +
 .../java/org/apache/jena/sparql/mgt/ARQMgt.java |   27 +
 .../org/apache/jena/sparql/mgt/ARQMgt_X.java    |  135 +
 .../apache/jena/sparql/mgt/ContextMBean.java    |  132 +
 .../org/apache/jena/sparql/mgt/Explain.java     |  373 +
 .../apache/jena/sparql/mgt/QueryEngineInfo.java |   68 +
 .../jena/sparql/mgt/QueryEngineInfoMBean.java   |   38 +
 .../apache/jena/sparql/mgt/QueryExecMBean.java  |   35 +
 .../org/apache/jena/sparql/mgt/SystemInfo.java  |   70 +
 .../apache/jena/sparql/mgt/SystemInfoMBean.java |   26 +
 .../jena/sparql/modify/GraphStoreAction.java    |   23 +
 .../jena/sparql/modify/GraphStoreBasic.java     |   38 +
 .../jena/sparql/modify/GraphStoreNull.java      |   73 +
 .../modify/GraphStoreNullTransactional.java     |   64 +
 .../jena/sparql/modify/GraphStoreWrapper.java   |   35 +
 .../modify/NodeTransformBNodesToVariables.java  |   53 +
 .../apache/jena/sparql/modify/TemplateLib.java  |  192 +
 .../jena/sparql/modify/UpdateCompare.java       |   57 +
 .../apache/jena/sparql/modify/UpdateEngine.java |   43 +
 .../jena/sparql/modify/UpdateEngineBase.java    |   56 +
 .../jena/sparql/modify/UpdateEngineFactory.java |   35 +
 .../jena/sparql/modify/UpdateEngineMain.java    |   89 +
 .../sparql/modify/UpdateEngineNonStreaming.java |  101 +
 .../sparql/modify/UpdateEngineRegistry.java     |   97 +
 .../jena/sparql/modify/UpdateEngineWorker.java  |  636 ++
 .../jena/sparql/modify/UpdateProcessRemote.java |   82 +
 .../sparql/modify/UpdateProcessRemoteBase.java  |  318 +
 .../sparql/modify/UpdateProcessRemoteForm.java  |   89 +
 .../jena/sparql/modify/UpdateProcessorBase.java |   74 +
 .../modify/UpdateProcessorStreamingBase.java    |   67 +
 .../jena/sparql/modify/UpdateRequestSink.java   |   75 +
 .../apache/jena/sparql/modify/UpdateSink.java   |   41 +
 .../jena/sparql/modify/UpdateVisitorSink.java   |   68 +
 .../apache/jena/sparql/modify/UsingList.java    |   44 +
 .../jena/sparql/modify/UsingUpdateSink.java     |   93 +
 .../jena/sparql/modify/request/QuadAcc.java     |   64 +
 .../jena/sparql/modify/request/QuadAccSink.java |   72 +
 .../jena/sparql/modify/request/QuadDataAcc.java |   83 +
 .../sparql/modify/request/QuadDataAccSink.java  |   57 +
 .../jena/sparql/modify/request/Target.java      |   96 +
 .../jena/sparql/modify/request/UpdateAdd.java   |   30 +
 .../sparql/modify/request/UpdateBinaryOp.java   |   66 +
 .../jena/sparql/modify/request/UpdateClear.java |   36 +
 .../jena/sparql/modify/request/UpdateCopy.java  |   30 +
 .../sparql/modify/request/UpdateCreate.java     |   74 +
 .../jena/sparql/modify/request/UpdateData.java  |   49 +
 .../sparql/modify/request/UpdateDataDelete.java |   28 +
 .../sparql/modify/request/UpdateDataInsert.java |   28 +
 .../sparql/modify/request/UpdateDataWriter.java |   57 +
 .../modify/request/UpdateDeleteInsert.java      |   25 +
 .../modify/request/UpdateDeleteWhere.java       |   51 +
 .../jena/sparql/modify/request/UpdateDrop.java  |   36 +
 .../sparql/modify/request/UpdateDropClear.java  |   63 +
 .../jena/sparql/modify/request/UpdateLoad.java  |   80 +
 .../sparql/modify/request/UpdateModify.java     |  125 +
 .../jena/sparql/modify/request/UpdateMove.java  |   30 +
 .../sparql/modify/request/UpdateSerializer.java |   65 +
 .../sparql/modify/request/UpdateVisitor.java    |   43 +
 .../sparql/modify/request/UpdateWithUsing.java  |   66 +
 .../sparql/modify/request/UpdateWriter.java     |  279 +
 .../modify/request/UpdateWriterVisitor.java     |  294 +
 .../java/org/apache/jena/sparql/path/P_Alt.java |   43 +
 .../org/apache/jena/sparql/path/P_Distinct.java |   50 +
 .../apache/jena/sparql/path/P_FixedLength.java  |   52 +
 .../org/apache/jena/sparql/path/P_Inverse.java  |   50 +
 .../org/apache/jena/sparql/path/P_Link.java     |   52 +
 .../java/org/apache/jena/sparql/path/P_Mod.java |   92 +
 .../org/apache/jena/sparql/path/P_Multi.java    |   51 +
 .../apache/jena/sparql/path/P_NegPropSet.java   |   73 +
 .../apache/jena/sparql/path/P_OneOrMore1.java   |   47 +
 .../apache/jena/sparql/path/P_OneOrMoreN.java   |   47 +
 .../org/apache/jena/sparql/path/P_Path0.java    |   30 +
 .../org/apache/jena/sparql/path/P_Path1.java    |   34 +
 .../org/apache/jena/sparql/path/P_Path2.java    |   57 +
 .../apache/jena/sparql/path/P_ReverseLink.java  |   52 +
 .../java/org/apache/jena/sparql/path/P_Seq.java |   45 +
 .../org/apache/jena/sparql/path/P_Shortest.java |   50 +
 .../apache/jena/sparql/path/P_ZeroOrMore1.java  |   47 +
 .../apache/jena/sparql/path/P_ZeroOrMoreN.java  |   47 +
 .../apache/jena/sparql/path/P_ZeroOrOne.java    |   47 +
 .../java/org/apache/jena/sparql/path/Path.java  |   29 +
 .../org/apache/jena/sparql/path/PathBase.java   |   75 +
 .../apache/jena/sparql/path/PathCompiler.java   |  195 +
 .../apache/jena/sparql/path/PathFactory.java    |   45 +
 .../org/apache/jena/sparql/path/PathLib.java    |  256 +
 .../org/apache/jena/sparql/path/PathParser.java |   74 +
 .../jena/sparql/path/PathPropertyFunction.java  |   49 +
 .../apache/jena/sparql/path/PathVisitor.java    |   44 +
 .../jena/sparql/path/PathVisitorBase.java       |   44 +
 .../jena/sparql/path/PathVisitorByType.java     |   76 +
 .../org/apache/jena/sparql/path/PathWriter.java |  310 +
 .../jena/sparql/path/eval/PathEngine.java       |  248 +
 .../jena/sparql/path/eval/PathEngine1.java      |  244 +
 .../jena/sparql/path/eval/PathEngineN.java      |  225 +
 .../jena/sparql/path/eval/PathEngineSPARQL.java |  267 +
 .../apache/jena/sparql/path/eval/PathEval.java  |   79 +
 .../jena/sparql/path/eval/PathEvaluator.java    |  189 +
 .../jena/sparql/pfunction/PFuncAssignBase.java  |   61 +
 .../sparql/pfunction/PFuncAssignToObject.java   |   29 +
 .../sparql/pfunction/PFuncAssignToSubject.java  |   40 +
 .../jena/sparql/pfunction/PFuncSimple.java      |   58 +
 .../sparql/pfunction/PFuncSimpleAndList.java    |   58 +
 .../jena/sparql/pfunction/ProcedurePF.java      |   72 +
 .../jena/sparql/pfunction/PropFuncArg.java      |  134 +
 .../jena/sparql/pfunction/PropFuncArgType.java  |   38 +
 .../jena/sparql/pfunction/PropertyFunction.java |   57 +
 .../sparql/pfunction/PropertyFunctionBase.java  |  126 +
 .../sparql/pfunction/PropertyFunctionEval.java  |   47 +
 .../pfunction/PropertyFunctionFactory.java      |   27 +
 .../pfunction/PropertyFunctionFactoryAuto.java  |   47 +
 .../pfunction/PropertyFunctionRegistry.java     |  166 +
 .../jena/sparql/pfunction/library/ListBase.java |  148 +
 .../sparql/pfunction/library/ListBase1.java     |   62 +
 .../sparql/pfunction/library/ListBaseList.java  |   58 +
 .../jena/sparql/pfunction/library/alt.java      |   29 +
 .../jena/sparql/pfunction/library/assign.java   |   55 +
 .../jena/sparql/pfunction/library/bag.java      |   29 +
 .../sparql/pfunction/library/blankNode.java     |   52 +
 .../jena/sparql/pfunction/library/bnode.java    |   24 +
 .../jena/sparql/pfunction/library/concat.java   |   54 +
 .../sparql/pfunction/library/container.java     |  182 +
 .../sparql/pfunction/library/listIndex.java     |  156 +
 .../sparql/pfunction/library/listLength.java    |   80 +
 .../sparql/pfunction/library/listMember.java    |   93 +
 .../jena/sparql/pfunction/library/seq.java      |   29 +
 .../jena/sparql/pfunction/library/splitIRI.java |  141 +
 .../jena/sparql/pfunction/library/splitURI.java |   23 +
 .../jena/sparql/pfunction/library/str.java      |   77 +
 .../jena/sparql/pfunction/library/strSplit.java |   70 +
 .../jena/sparql/pfunction/library/version.java  |   79 +
 .../sparql/pfunction/library/versionARQ.java    |   69 +
 .../apache/jena/sparql/procedure/ProcEval.java  |   78 +
 .../apache/jena/sparql/procedure/Procedure.java |   53 +
 .../jena/sparql/procedure/ProcedureBase.java    |   92 +
 .../jena/sparql/procedure/ProcedureEval.java    |   59 +
 .../jena/sparql/procedure/ProcedureFactory.java |   27 +
 .../sparql/procedure/ProcedureFactoryAuto.java  |   45 +
 .../sparql/procedure/ProcedureRegistry.java     |  124 +
 .../sparql/procedure/StandardProcedures.java    |   30 +
 .../jena/sparql/procedure/library/debug.java    |   37 +
 .../apache/jena/sparql/resultset/CSVInput.java  |  139 +
 .../jena/sparql/resultset/CSVInputIterator.java |  201 +
 .../apache/jena/sparql/resultset/CSVOutput.java |  154 +
 .../apache/jena/sparql/resultset/JSONInput.java |  273 +
 .../sparql/resultset/JSONInputIterator.java     |  758 ++
 .../jena/sparql/resultset/JSONOutput.java       |   45 +
 .../jena/sparql/resultset/JSONOutputASK.java    |   57 +
 .../sparql/resultset/JSONOutputResultSet.java   |  271 +
 .../jena/sparql/resultset/JSONResultsKW.java    |   42 +
 .../jena/sparql/resultset/OutputBase.java       |   42 +
 .../jena/sparql/resultset/OutputFormatter.java  |   46 +
 .../jena/sparql/resultset/PlainFormat.java      |   89 +
 .../apache/jena/sparql/resultset/RDFInput.java  |  197 +
 .../apache/jena/sparql/resultset/RDFOutput.java |  286 +
 .../jena/sparql/resultset/ResultSetApply.java   |   61 +
 .../jena/sparql/resultset/ResultSetCompare.java |  330 +
 .../sparql/resultset/ResultSetException.java    |   28 +
 .../jena/sparql/resultset/ResultSetMem.java     |  206 +
 .../sparql/resultset/ResultSetPeekable.java     |   46 +
 .../jena/sparql/resultset/ResultSetPeeking.java |  182 +
 .../sparql/resultset/ResultSetProcessor.java    |   48 +
 .../jena/sparql/resultset/ResultsFormat.java    |  183 +
 .../jena/sparql/resultset/SPARQLResult.java     |  131 +
 .../jena/sparql/resultset/SortedResultSet.java  |  145 +
 .../apache/jena/sparql/resultset/TSVInput.java  |  127 +
 .../jena/sparql/resultset/TSVInputIterator.java |  155 +
 .../apache/jena/sparql/resultset/TSVOutput.java |  122 +
 .../jena/sparql/resultset/TextOutput.java       |  239 +
 .../apache/jena/sparql/resultset/XMLInput.java  |  103 +
 .../jena/sparql/resultset/XMLInputSAX.java      |  377 +
 .../jena/sparql/resultset/XMLInputStAX.java     |  518 ++
 .../apache/jena/sparql/resultset/XMLOutput.java |   77 +
 .../jena/sparql/resultset/XMLOutputASK.java     |   84 +
 .../sparql/resultset/XMLOutputResultSet.java    |  314 +
 .../jena/sparql/resultset/XMLResults.java       |   50 +
 .../jena/sparql/serializer/FmtExprSPARQL.java   |  236 +
 .../jena/sparql/serializer/FmtTemplate.java     |   66 +
 .../jena/sparql/serializer/FormatterBase.java   |   61 +
 .../sparql/serializer/FormatterElement.java     |  651 ++
 .../sparql/serializer/FormatterTemplate.java    |   28 +
 .../sparql/serializer/PrologueSerializer.java   |   81 +
 .../jena/sparql/serializer/QuerySerializer.java |  408 ++
 .../serializer/QuerySerializerFactory.java      |   66 +
 .../sparql/serializer/SerializationContext.java |  157 +
 .../sparql/serializer/SerializerRegistry.java   |  235 +
 .../serializer/UpdateSerializerFactory.java     |   43 +
 .../java/org/apache/jena/sparql/sse/Item.java   |  381 +
 .../apache/jena/sparql/sse/ItemException.java   |   25 +
 .../org/apache/jena/sparql/sse/ItemList.java    |  155 +
 .../apache/jena/sparql/sse/ItemLocation.java    |   46 +
 .../apache/jena/sparql/sse/ItemTransform.java   |   29 +
 .../jena/sparql/sse/ItemTransformBase.java      |   43 +
 .../apache/jena/sparql/sse/ItemTransformer.java |   84 +
 .../org/apache/jena/sparql/sse/ItemVisitor.java |   29 +
 .../org/apache/jena/sparql/sse/ItemWalker.java  |   62 +
 .../org/apache/jena/sparql/sse/ItemWriter.java  |  213 +
 .../java/org/apache/jena/sparql/sse/SSE.java    |  513 ++
 .../jena/sparql/sse/SSEParseException.java      |   48 +
 .../java/org/apache/jena/sparql/sse/Tags.java   |  235 +
 .../org/apache/jena/sparql/sse/WriterSSE.java   |   68 +
 .../sparql/sse/builders/BuildException.java     |   29 +
 .../sparql/sse/builders/BuilderBinding.java     |   76 +
 .../jena/sparql/sse/builders/BuilderExec.java   |   48 +
 .../jena/sparql/sse/builders/BuilderExpr.java   | 1419 ++++
 .../jena/sparql/sse/builders/BuilderGraph.java  |  248 +
 .../jena/sparql/sse/builders/BuilderLib.java    |  185 +
 .../jena/sparql/sse/builders/BuilderNode.java   |  182 +
 .../jena/sparql/sse/builders/BuilderOp.java     |  791 ++
 .../jena/sparql/sse/builders/BuilderPath.java   |  338 +
 .../sse/builders/BuilderPrefixMapping.java      |  110 +
 .../sparql/sse/builders/BuilderResultSet.java   |   57 +
 .../jena/sparql/sse/builders/BuilderTable.java  |   89 +
 .../sparql/sse/builders/ExprBuildException.java |   29 +
 .../sparql/sse/builders/OpBuildException.java   |   29 +
 .../jena/sparql/sse/lang/ParseHandler.java      |   41 +
 .../jena/sparql/sse/lang/ParseHandler2.java     |  118 +
 .../jena/sparql/sse/lang/ParseHandlerDebug.java |  118 +
 .../jena/sparql/sse/lang/ParseHandlerForm.java  |  198 +
 .../jena/sparql/sse/lang/ParseHandlerLink.java  |   98 +
 .../jena/sparql/sse/lang/ParseHandlerPlain.java |  224 +
 .../sparql/sse/lang/ParseHandlerResolver.java   |  193 +
 .../sparql/sse/lang/ParseHandlerWrapper.java    |  101 +
 .../jena/sparql/sse/lang/ParserSSEBase.java     |   96 +
 .../apache/jena/sparql/sse/lang/SSE_Parser.java |   75 +
 .../sparql/sse/lang/parser/JavaCharStream.java  |  634 ++
 .../sparql/sse/lang/parser/ParseException.java  |  204 +
 .../sparql/sse/lang/parser/SSE_ParserCore.java  |  559 ++
 .../lang/parser/SSE_ParserCoreConstants.java    |  165 +
 .../lang/parser/SSE_ParserCoreTokenManager.java | 1197 +++
 .../jena/sparql/sse/lang/parser/Token.java      |  148 +
 .../sparql/sse/lang/parser/TokenMgrError.java   |  164 +
 .../sparql/sse/writers/WriterBasePrefix.java    |  115 +
 .../jena/sparql/sse/writers/WriterExpr.java     |  206 +
 .../jena/sparql/sse/writers/WriterGraph.java    |  132 +
 .../jena/sparql/sse/writers/WriterLib.java      |  112 +
 .../jena/sparql/sse/writers/WriterNode.java     |  103 +
 .../jena/sparql/sse/writers/WriterOp.java       |  690 ++
 .../jena/sparql/sse/writers/WriterPath.java     |  304 +
 .../jena/sparql/sse/writers/WriterTable.java    |   72 +
 .../org/apache/jena/sparql/syntax/Element.java  |   64 +
 .../org/apache/jena/sparql/syntax/Element1.java |   36 +
 .../jena/sparql/syntax/ElementAssign.java       |   70 +
 .../apache/jena/sparql/syntax/ElementBind.java  |   70 +
 .../apache/jena/sparql/syntax/ElementData.java  |   93 +
 .../jena/sparql/syntax/ElementDataset.java      |   74 +
 .../jena/sparql/syntax/ElementExists.java       |   47 +
 .../jena/sparql/syntax/ElementFilter.java       |   52 +
 .../apache/jena/sparql/syntax/ElementGroup.java |  116 +
 .../apache/jena/sparql/syntax/ElementMinus.java |   58 +
 .../jena/sparql/syntax/ElementNamedGraph.java   |   73 +
 .../jena/sparql/syntax/ElementNotExists.java    |   47 +
 .../jena/sparql/syntax/ElementOptional.java     |   58 +
 .../jena/sparql/syntax/ElementPathBlock.java    |   90 +
 .../jena/sparql/syntax/ElementService.java      |   79 +
 .../jena/sparql/syntax/ElementSubQuery.java     |   53 +
 .../jena/sparql/syntax/ElementTriplesBlock.java |   90 +
 .../apache/jena/sparql/syntax/ElementUnion.java |   74 +
 .../jena/sparql/syntax/ElementVisitor.java      |   39 +
 .../jena/sparql/syntax/ElementVisitorBase.java  |   74 +
 .../jena/sparql/syntax/ElementWalker.java       |  216 +
 .../apache/jena/sparql/syntax/PatternVars.java  |   63 +
 .../jena/sparql/syntax/PatternVarsVisitor.java  |  105 +
 .../sparql/syntax/RecursiveElementVisitor.java  |  242 +
 .../org/apache/jena/sparql/syntax/Template.java |  116 +
 .../jena/sparql/syntax/TripleCollector.java     |   30 +
 .../jena/sparql/syntax/TripleCollectorBGP.java  |   52 +
 .../jena/sparql/syntax/TripleCollectorMark.java |   34 +
 .../syntaxtransform/ElementTransform.java       |   51 +
 .../ElementTransformCleanGroupsOfOne.java       |  139 +
 .../ElementTransformCopyBase.java               |  145 +
 .../ElementTransformIdentity.java               |   74 +
 .../syntaxtransform/ElementTransformSubst.java  |  109 +
 .../syntaxtransform/ElementTransformer.java     |  289 +
 .../ExprTransformApplyElementTransform.java     |   52 +
 .../ExprTransformNodeElement.java               |   78 +
 .../syntaxtransform/NodeTransformSubst.java     |   42 +
 .../syntaxtransform/QueryTransformOps.java      |  238 +
 .../syntaxtransform/TransformElementLib.java    |   61 +
 .../syntaxtransform/UpdateTransformOps.java     |  209 +
 .../org/apache/jena/sparql/util/Closure.java    |  243 +
 .../apache/jena/sparql/util/ClosureTest.java    |   45 +
 .../org/apache/jena/sparql/util/Context.java    |  380 +
 .../org/apache/jena/sparql/util/Convert.java    |   85 +
 .../apache/jena/sparql/util/DatasetUtils.java   |  190 +
 .../apache/jena/sparql/util/DateTimeStruct.java |  418 ++
 .../org/apache/jena/sparql/util/ExprUtils.java  |  273 +
 .../org/apache/jena/sparql/util/FmtUtils.java   |  630 ++
 .../java/org/apache/jena/sparql/util/Iso.java   |  137 +
 .../org/apache/jena/sparql/util/IsoMatcher.java |  264 +
 .../org/apache/jena/sparql/util/IterLib.java    |   45 +
 .../apache/jena/sparql/util/LabelToNodeMap.java |   97 +
 .../org/apache/jena/sparql/util/Loader.java     |  152 +
 .../apache/jena/sparql/util/MappedLoader.java   |   99 +
 .../jena/sparql/util/MappingRegistry.java       |   43 +
 .../org/apache/jena/sparql/util/ModelUtils.java |  141 +
 .../java/org/apache/jena/sparql/util/Named.java |   24 +
 .../apache/jena/sparql/util/NodeComparator.java |   34 +
 .../jena/sparql/util/NodeFactoryExtra.java      |  250 +
 .../jena/sparql/util/NodeIsomorphismMap.java    |   51 +
 .../apache/jena/sparql/util/NodeToLabelMap.java |  102 +
 .../jena/sparql/util/NodeToLabelMapBNode.java   |   42 +
 .../org/apache/jena/sparql/util/NodeUtils.java  |  284 +
 .../jena/sparql/util/NotUniqueException.java    |   46 +
 .../apache/jena/sparql/util/PrefixMapping2.java |  216 +
 .../jena/sparql/util/PrintSerializable.java     |   31 +
 .../jena/sparql/util/PrintSerializableBase.java |   46 +
 .../sparql/util/PropertyRequiredException.java  |   52 +
 .../apache/jena/sparql/util/QueryExecUtils.java |  367 +
 .../jena/sparql/util/QueryOutputUtils.java      |  117 +
 .../org/apache/jena/sparql/util/QueryUtils.java |  119 +
 .../apache/jena/sparql/util/ResultSetUtils.java |   95 +
 .../apache/jena/sparql/util/RomanNumeral.java   |  178 +
 .../jena/sparql/util/RomanNumeralDatatype.java  |   72 +
 .../apache/jena/sparql/util/StringUtils.java    |   78 +
 .../org/apache/jena/sparql/util/Symbol.java     |   63 +
 .../jena/sparql/util/TranslationTable.java      |   73 +
 .../jena/sparql/util/TripleComparator.java      |   44 +
 .../sparql/util/TypeNotUniqueException.java     |   31 +
 .../java/org/apache/jena/sparql/util/Utils.java |   70 +
 .../org/apache/jena/sparql/util/VarUtils.java   |   73 +
 .../apache/jena/sparql/util/graph/Findable.java |   30 +
 .../sparql/util/graph/FindableBasicPattern.java |   89 +
 .../jena/sparql/util/graph/FindableGraph.java   |   50 +
 .../apache/jena/sparql/util/graph/GNode.java    |   42 +
 .../sparql/util/graph/GraphContainerUtils.java  |  202 +
 .../jena/sparql/util/graph/GraphList.java       |  384 +
 .../sparql/util/graph/GraphListenerBase.java    |  123 +
 .../sparql/util/graph/GraphListenerCounter.java |  105 +
 .../sparql/util/graph/GraphLoadMonitor.java     |  148 +
 .../jena/sparql/util/graph/GraphSink.java       |   35 +
 .../jena/sparql/util/graph/GraphUtils.java      |  205 +
 .../org/apache/jena/sparql/vocabulary/DOAP.java |  229 +
 .../org/apache/jena/sparql/vocabulary/EARL.java |  137 +
 .../org/apache/jena/sparql/vocabulary/FOAF.java |  260 +
 .../jena/sparql/vocabulary/ListPFunction.java   |  112 +
 .../sparql/vocabulary/ResultSetGraphVocab.java  |   80 +
 .../apache/jena/sparql/vocabulary/TestDAWG.java |  113 +
 .../jena/sparql/vocabulary/TestManifest.java    |  131 +
 .../vocabulary/TestManifestUpdate_11.java       |   81 +
 .../jena/sparql/vocabulary/TestManifestX.java   |   79 +
 .../jena/sparql/vocabulary/TestManifest_11.java |   68 +
 .../jena/sparql/vocabulary/VocabTestQuery.java  |   59 +
 .../java/org/apache/jena/update/GraphStore.java |   28 +
 .../apache/jena/update/GraphStoreFactory.java   |   76 +
 .../java/org/apache/jena/update/Update.java     |   59 +
 .../org/apache/jena/update/UpdateAction.java    |  433 ++
 .../org/apache/jena/update/UpdateException.java |   30 +
 .../jena/update/UpdateExecutionFactory.java     |  455 ++
 .../org/apache/jena/update/UpdateFactory.java   |  290 +
 .../org/apache/jena/update/UpdateProcessor.java |   53 +
 .../jena/update/UpdateProcessorStreaming.java   |   56 +
 .../org/apache/jena/update/UpdateRequest.java   |  101 +
 .../org/apache/jena/web/DatasetAdapter.java     |   10 +-
 .../apache/jena/web/DatasetGraphAccessor.java   |    4 +-
 .../jena/web/DatasetGraphAccessorBasic.java     |    8 +-
 .../jena/web/DatasetGraphAccessorHTTP.java      |   12 +-
 .../org/apache/jena/web/JenaHttpException.java  |    2 +-
 .../src/main/java/riotcmd/CmdLangParse.java     |   40 +-
 jena-arq/src/main/java/riotcmd/CmdTokens.java   |    3 +-
 jena-arq/src/main/java/riotcmd/dumpthrift.java  |    5 +-
 jena-arq/src/main/java/riotcmd/infer.java       |   12 +-
 jena-arq/src/main/java/riotcmd/nquads.java      |    5 +-
 jena-arq/src/main/java/riotcmd/ntriples.java    |    5 +-
 jena-arq/src/main/java/riotcmd/rdfxml.java      |    5 +-
 jena-arq/src/main/java/riotcmd/riot.java        |    5 +-
 jena-arq/src/main/java/riotcmd/trig.java        |    5 +-
 jena-arq/src/main/java/riotcmd/turtle.java      |    5 +-
 jena-arq/src/main/java/riotcmd/utf8.java        |   48 +-
 jena-arq/src/test/java/arq/TestCmdLine.java     |    5 +-
 jena-arq/src/test/java/arq/qtest.java           |   51 +-
 .../com/hp/hpl/jena/query/TS_ParamString.java   |   31 -
 .../query/TestParameterizedSparqlString.java    | 1883 -----
 .../hp/hpl/jena/sparql/ARQTestRefEngine.java    |   52 -
 .../com/hp/hpl/jena/sparql/ARQTestSuite.java    |   91 -
 .../java/com/hp/hpl/jena/sparql/TC_DAWG.java    |   96 -
 .../java/com/hp/hpl/jena/sparql/TC_General.java |   91 -
 .../com/hp/hpl/jena/sparql/TC_SPARQL11.java     |   36 -
 .../com/hp/hpl/jena/sparql/TC_Scripted.java     |   44 -
 .../hp/hpl/jena/sparql/algebra/TS_Algebra.java  |   40 -
 .../sparql/algebra/TestAlgebraTranslate.java    |  144 -
 .../hpl/jena/sparql/algebra/TestClassify.java   |  208 -
 .../hpl/jena/sparql/algebra/TestOpAsQuery.java  |  355 -
 .../hp/hpl/jena/sparql/algebra/TestOpVars.java  |   82 -
 .../jena/sparql/algebra/TestPattern2Join.java   |  105 -
 .../jena/sparql/algebra/TestTransformOpExt.java |  105 -
 .../jena/sparql/algebra/TestTransformQuads.java |  172 -
 .../hpl/jena/sparql/algebra/TestVarFinder.java  |   91 -
 .../algebra/optimize/AbstractTestTransform.java |  102 -
 .../algebra/optimize/TS_Optimization.java       |   43 -
 .../optimize/TestOptDistinctReduced.java        |  304 -
 .../sparql/algebra/optimize/TestOptimizer.java  |  366 -
 .../sparql/algebra/optimize/TestReorderBGP.java |   88 -
 .../optimize/TestSemanticEquivalence.java       |  297 -
 .../optimize/TestTransformConstantFolding.java  |  173 -
 .../optimize/TestTransformFilterPlacement.java  |  881 ---
 .../algebra/optimize/TestTransformFilters.java  | 1038 ---
 .../optimize/TestTransformMergeBGPs.java        |  104 -
 .../TestTransformPromoteTableEmpty.java         |  167 -
 .../algebra/optimize/TestTransformTopN.java     |  322 -
 .../sparql/algebra/optimize/TestVarRename.java  |  243 -
 .../uniongraph/AbstractTestUnionTransform.java  |   96 -
 .../algebra/uniongraph/Dev_TS_UnionGraph.java   |   35 -
 .../algebra/uniongraph/TestUnionGraph.java      |  107 -
 .../uniongraph/TestUnionTransformQuads.java     |   35 -
 .../uniongraph/TestUnionTransformTriples.java   |   34 -
 .../java/com/hp/hpl/jena/sparql/api/TS_API.java |   34 -
 .../com/hp/hpl/jena/sparql/api/TestAPI.java     |  323 -
 .../sparql/api/TestQueryExecutionCancel.java    |  149 -
 .../sparql/api/TestQueryExecutionTimeout1.java  |  253 -
 .../sparql/api/TestQueryExecutionTimeout2.java  |  103 -
 .../sparql/core/AbstractDatasetGraphTests.java  |  276 -
 .../jena/sparql/core/AbstractTestDataset.java   |  113 -
 .../sparql/core/AbstractTestDynamicDataset.java |  340 -
 .../core/AbstractTestGraphOverDataset.java      |  173 -
 .../com/hp/hpl/jena/sparql/core/TS_Core.java    |   40 -
 .../hp/hpl/jena/sparql/core/TestContext.java    |   81 -
 .../jena/sparql/core/TestDatasetGraphMem.java   |   29 -
 .../core/TestDatasetGraphMemTriplesQuads.java   |   29 -
 .../sparql/core/TestDatasetGraphViewGraphs.java |   81 -
 .../sparql/core/TestDatasetGraphWithLock.java   |  122 -
 .../sparql/core/TestDatasetGraphsRegular.java   |   47 -
 .../hp/hpl/jena/sparql/core/TestDatasetMem.java |   28 -
 .../jena/sparql/core/TestDatasetMonitor.java    |  142 -
 .../jena/sparql/core/TestDynamicDatasetMem.java |   40 -
 .../sparql/core/TestGraphOverDatasetMem.java    |   48 -
 .../hp/hpl/jena/sparql/engine/TS_Engine.java    |   39 -
 .../engine/TestQueryEngineMultiThreaded.java    |  306 -
 .../hp/hpl/jena/sparql/engine/TestTableLib.java |  119 -
 .../jena/sparql/engine/binding/TS_Binding.java  |   32 -
 .../engine/binding/TestBindingStreams.java      |  177 -
 .../sparql/engine/http/TestQueryEngineHTTP.java |   66 -
 .../jena/sparql/engine/http/TestService.java    |  334 -
 .../sparql/engine/index/TestIndexTable.java     |  204 -
 .../engine/iterator/TestQueryIterSort.java      |  363 -
 .../com/hp/hpl/jena/sparql/expr/TS_Expr.java    |   65 -
 .../jena/sparql/expr/TestCustomAggregates.java  |  163 -
 .../hp/hpl/jena/sparql/expr/TestExprLib.java    |   86 -
 .../hpl/jena/sparql/expr/TestExprTransform.java |   53 -
 .../hpl/jena/sparql/expr/TestExpressions.java   |  502 --
 .../hpl/jena/sparql/expr/TestExpressions2.java  |  158 -
 .../hp/hpl/jena/sparql/expr/TestFunctions.java  |  263 -
 .../hp/hpl/jena/sparql/expr/TestFunctions2.java |  556 --
 .../sparql/expr/TestLeviathanFunctions.java     |  119 -
 .../hpl/jena/sparql/expr/TestNodeFunctions.java |  347 -
 .../hp/hpl/jena/sparql/expr/TestNodeValue.java  |  816 ---
 .../hpl/jena/sparql/expr/TestNodeValueOps.java  |  201 -
 .../hp/hpl/jena/sparql/expr/TestOrdering.java   |  298 -
 .../com/hp/hpl/jena/sparql/expr/TestRegex.java  |   65 -
 .../hp/hpl/jena/sparql/expr/TestXSDFuncOp.java  |  944 ---
 .../sparql/function/user/TS_UserFunctions.java  |   49 -
 .../function/user/TestFunctionExpansion.java    |  376 -
 .../function/user/TestFunctionNonExpansion.java |   98 -
 .../user/TestUserDefinedFunctionFactory.java    |   87 -
 .../user/TestUserFunctionsInSparql.java         |   80 -
 .../jena/sparql/graph/AbstractTestGraph2.java   |  263 -
 .../graph/AbstractTestPrefixMapping2.java       |  110 -
 .../hp/hpl/jena/sparql/graph/GraphsTests.java   |  236 -
 .../com/hp/hpl/jena/sparql/graph/TS_Graph.java  |   35 -
 .../jena/sparql/graph/TestDatasetGraphMem.java  |   30 -
 .../hp/hpl/jena/sparql/graph/TestDatasets.java  |  315 -
 .../jena/sparql/graph/TestGraphUnionRead.java   |  122 -
 .../jena/sparql/graph/TestGraphsDataBag.java    |  172 -
 .../hp/hpl/jena/sparql/graph/TestGraphsMem.java |   70 -
 .../hp/hpl/jena/sparql/junit/EarlReport.java    |  161 -
 .../hp/hpl/jena/sparql/junit/EarlTestCase.java  |  152 -
 .../com/hp/hpl/jena/sparql/junit/QueryTest.java |  491 --
 .../jena/sparql/junit/QueryTestException.java   |   31 -
 .../sparql/junit/ScriptTestSuiteFactory.java    |  149 -
 .../hpl/jena/sparql/junit/SimpleTestRunner.java |  158 -
 .../hpl/jena/sparql/junit/SurpressedTest.java   |   45 -
 .../hp/hpl/jena/sparql/junit/SyntaxTest.java    |   85 -
 .../hpl/jena/sparql/junit/SyntaxUpdateTest.java |   83 -
 .../com/hp/hpl/jena/sparql/junit/TestItem.java  |  322 -
 .../hpl/jena/sparql/junit/TestQueryUtils.java   |   37 -
 .../jena/sparql/junit/TestSerialization.java    |  109 -
 .../jena/sparql/junit/TextListenerOneLine.java  |  129 -
 .../hp/hpl/jena/sparql/junit/UpdateTest.java    |  222 -
 .../com/hp/hpl/jena/sparql/lang/TS_Lang.java    |   33 -
 .../com/hp/hpl/jena/sparql/lang/TestEsc.java    |   74 -
 .../hp/hpl/jena/sparql/lang/TestVarScope.java   |  136 -
 .../sparql/modify/AbstractTestUpdateBase.java   |   72 -
 .../sparql/modify/AbstractTestUpdateGraph.java  |  399 -
 .../modify/AbstractTestUpdateGraphMgt.java      |  108 -
 .../hp/hpl/jena/sparql/modify/TS_Update.java    |   36 -
 .../jena/sparql/modify/TestUpdateCompare.java   |   99 -
 .../jena/sparql/modify/TestUpdateGraphMem.java  |   32 -
 .../sparql/modify/TestUpdateGraphMgtMem.java    |   32 -
 .../sparql/modify/TestUpdateOperations.java     |   99 -
 .../jena/sparql/modify/TestUpdateWriter.java    |   56 -
 .../hpl/jena/sparql/negation/TS_Negation.java   |   32 -
 .../jena/sparql/negation/TestGraphDeltas.java   |  255 -
 .../com/hp/hpl/jena/sparql/path/TS_Path.java    |   36 -
 .../com/hp/hpl/jena/sparql/path/TestPath.java   |  355 -
 .../com/hp/hpl/jena/sparql/path/TestPath2.java  |  157 -
 .../com/hp/hpl/jena/sparql/path/TestPathPF.java |  163 -
 .../hpl/jena/sparql/resultset/TS_ResultSet.java |   33 -
 .../jena/sparql/resultset/TestResultSet.java    |  593 --
 .../sparql/resultset/TestResultSetFormat1.java  |  188 -
 .../sparql/resultset/TestResultSetFormat2.java  |  405 -
 .../hp/hpl/jena/sparql/solver/TS_Solver.java    |   32 -
 .../hp/hpl/jena/sparql/solver/TestReorder.java  |  233 -
 .../hpl/jena/sparql/solver/TestSolverLib.java   |   64 -
 .../com/hp/hpl/jena/sparql/syntax/TS_SSE.java   |   33 -
 .../jena/sparql/syntax/TS_Serialization.java    |   30 -
 .../hpl/jena/sparql/syntax/TestSSE_Basic.java   |  392 -
 .../hpl/jena/sparql/syntax/TestSSE_Builder.java |  195 -
 .../hpl/jena/sparql/syntax/TestSSE_Forms.java   |  169 -
 .../jena/sparql/syntax/TestSerialization.java   |  285 -
 .../transaction/AbstractTestTransaction.java    |  261 -
 .../jena/sparql/transaction/TS_Transaction.java |   31 -
 .../sparql/transaction/TestTransactionMem.java  |   49 -
 .../com/hp/hpl/jena/sparql/util/TS_Util.java    |   35 -
 .../jena/sparql/util/TestDateTimeParsing.java   |  285 -
 .../hp/hpl/jena/sparql/util/TestFmtUtils.java   |  236 -
 .../com/hp/hpl/jena/sparql/util/TestList.java   |  252 -
 .../com/hp/hpl/jena/sparql/util/TestUtils.java  |   84 -
 .../hp/hpl/jena/sparql/util/TestVersion.java    |   81 -
 .../java/org/apache/jena/atlas/TC_Atlas.java    |   46 -
 .../jena/atlas/data/TestDistinctDataBag.java    |   28 +-
 .../jena/atlas/data/TestDistinctDataNet.java    |   27 +-
 .../jena/atlas/data/TestSortedDataBag.java      |   26 +-
 .../atlas/io/AbstractTestPeekInputStream.java   |  243 -
 .../jena/atlas/io/AbstractTestPeekReader.java   |  243 -
 .../java/org/apache/jena/atlas/io/TS_IO.java    |   45 -
 .../org/apache/jena/atlas/io/TestBlockUTF8.java |  254 -
 .../jena/atlas/io/TestBufferingWriter.java      |   97 -
 .../jena/atlas/io/TestIndentedWriter.java       |   58 -
 .../jena/atlas/io/TestInputStreamBuffered.java  |  109 -
 .../atlas/io/TestPeekInputStreamSource.java     |   44 -
 .../atlas/io/TestPeekReaderCharSequence.java    |   32 -
 .../jena/atlas/io/TestPeekReaderSource.java     |   34 -
 .../apache/jena/atlas/io/TestPrintUtils.java    |   59 -
 .../apache/jena/atlas/io/TestStreamUTF8.java    |  118 -
 .../apache/jena/atlas/iterator/TS_Iterator.java |   38 -
 .../apache/jena/atlas/iterator/TestIter.java    |  539 --
 .../jena/atlas/iterator/TestIteratorArray.java  |  104 -
 .../jena/atlas/iterator/TestIteratorPeek.java   |  107 -
 .../atlas/iterator/TestIteratorPushback.java    |   93 -
 .../atlas/iterator/TestIteratorSlotted.java     |  136 -
 .../atlas/iterator/TestIteratorWithBuffer.java  |   97 -
 .../atlas/iterator/TestIteratorWithHistory.java |   87 -
 .../org/apache/jena/atlas/junit/BaseTest.java   |   80 -
 .../apache/jena/atlas/junit/TextListener2.java  |   69 -
 .../org/apache/jena/atlas/legacy/BaseTest2.java |   60 +
 .../apache/jena/atlas/legacy/TC_Atlas_ARQ.java  |   43 +
 .../java/org/apache/jena/atlas/lib/TS_Lib.java  |   54 -
 .../apache/jena/atlas/lib/TestAlarmClock.java   |   92 -
 .../java/org/apache/jena/atlas/lib/TestAlg.java |  226 -
 .../org/apache/jena/atlas/lib/TestBitsInt.java  |  468 --
 .../org/apache/jena/atlas/lib/TestBitsLong.java |  468 --
 .../org/apache/jena/atlas/lib/TestBytes.java    |  198 -
 .../org/apache/jena/atlas/lib/TestCache.java    |  188 -
 .../org/apache/jena/atlas/lib/TestCache2.java   |   83 -
 .../apache/jena/atlas/lib/TestCacheStats.java   |   84 -
 .../apache/jena/atlas/lib/TestColumnMap.java    |  107 -
 .../org/apache/jena/atlas/lib/TestFileOps.java  |   78 -
 .../jena/atlas/lib/TestFilenameProcessing.java  |  102 -
 .../java/org/apache/jena/atlas/lib/TestHex.java |   81 -
 .../apache/jena/atlas/lib/TestListUtils.java    |   79 -
 .../org/apache/jena/atlas/lib/TestMultiSet.java |  143 -
 .../apache/jena/atlas/lib/TestNumberUtils.java  |  106 -
 .../org/apache/jena/atlas/lib/TestRefLong.java  |   70 -
 .../jena/atlas/lib/TestReverseComparator.java   |   91 -
 .../org/apache/jena/atlas/lib/TestSetUtils.java |  146 -
 .../org/apache/jena/atlas/lib/TestStrUtils.java |   59 -
 .../org/apache/jena/atlas/lib/TestTrie.java     |  346 -
 .../org/apache/jena/atlas/lib/TestXMLLib.java   |   46 -
 .../org/apache/jena/common/TestIsoMatcher.java  |   15 +-
 .../org/apache/jena/query/TS_ParamString.java   |   31 +
 .../query/TestParameterizedSparqlString.java    | 1881 +++++
 .../java/org/apache/jena/riot/TS_LangSuite.java |    2 +-
 .../apache/jena/riot/TestJenaReaderRIOT.java    |   11 +-
 .../java/org/apache/jena/riot/TestReadData.java |   13 +-
 .../org/apache/jena/riot/TestRiotReader.java    |   17 +-
 .../jena/riot/adapters/TestFileManager.java     |    9 +-
 .../java/org/apache/jena/riot/lang/TS_Lang.java |    6 +-
 .../jena/riot/lang/TestBlankNodeAllocator.java  |    3 +-
 .../jena/riot/lang/TestCollectorStream.java     |    9 +-
 .../java/org/apache/jena/riot/lang/TestIRI.java |   38 +-
 .../apache/jena/riot/lang/TestLabelToNode.java  |    5 +-
 .../org/apache/jena/riot/lang/TestLang.java     |    3 +-
 .../org/apache/jena/riot/lang/TestLangCSV.java  |    5 +-
 .../apache/jena/riot/lang/TestLangNQuads.java   |    7 +-
 .../apache/jena/riot/lang/TestLangNTriples.java |    9 +-
 .../apache/jena/riot/lang/TestLangNTuples.java  |   16 +-
 .../apache/jena/riot/lang/TestLangRdfJson.java  |    5 +-
 .../org/apache/jena/riot/lang/TestLangTrig.java |   19 +-
 .../apache/jena/riot/lang/TestLangTurtle.java   |   51 +-
 .../jena/riot/lang/TestNodeAllocator.java       |    5 +-
 .../apache/jena/riot/lang/TestNodeToLabel.java  |    5 +-
 .../jena/riot/lang/TestParserFactory.java       |    7 +-
 .../jena/riot/lang/TestPipedRDFIterators.java   |   38 +-
 .../apache/jena/riot/lang/TestTriXReader.java   |    9 +-
 .../jena/riot/langsuite/FactoryTestRiot.java    |   11 +-
 .../jena/riot/langsuite/LangTestCase.java       |   11 +-
 .../jena/riot/langsuite/UnitTestBadEval.java    |   13 +-
 .../jena/riot/langsuite/UnitTestBadSyntax.java  |   17 +-
 .../jena/riot/langsuite/UnitTestEval.java       |   13 +-
 .../jena/riot/langsuite/UnitTestSurpressed.java |    2 +-
 .../jena/riot/langsuite/UnitTestSyntax.java     |   11 +-
 .../jena/riot/langsuite/VocabLangRDF.java       |    6 +-
 .../org/apache/jena/riot/out/TestNodeFmt.java   |    9 +-
 .../apache/jena/riot/out/TestNodeFmtLib.java    |    7 +-
 .../jena/riot/process/TestNormalization.java    |    9 +-
 .../jena/riot/resultset/TestResultSetIO.java    |   13 +-
 .../jena/riot/stream/TestLocationMapper.java    |    7 +-
 .../jena/riot/stream/TestStreamManager.java     |    7 +-
 .../apache/jena/riot/system/TestChecker.java    |    7 +-
 .../jena/riot/system/TestIO_JenaReaders.java    |    7 +-
 .../jena/riot/system/TestIO_JenaWriters.java    |   13 +-
 .../jena/riot/system/TestJsonLDReadWrite.java   |   20 +-
 .../apache/jena/riot/system/TestStreamRDF.java  |    7 +-
 .../apache/jena/riot/thrift/TS_RDFThrift.java   |    1 -
 .../jena/riot/thrift/TestResultSetThrift.java   |   26 +-
 .../jena/riot/thrift/TestStreamRDFThrift.java   |   32 +-
 .../apache/jena/riot/thrift/TestThriftTerm.java |   63 +-
 .../jena/riot/tokens/TestTokenForNode.java      |    9 +-
 .../apache/jena/riot/tokens/TestTokenizer.java  |   93 +-
 .../jena/riot/writer/AbstractWriterTest.java    |    5 +-
 .../apache/jena/riot/writer/TS_RiotWriter.java  |    1 +
 .../jena/riot/writer/TestJenaWriters.java       |   21 +-
 .../apache/jena/riot/writer/TestRDFJSON.java    |   13 +-
 .../jena/riot/writer/TestRiotWriterDataset.java |   12 +-
 .../jena/riot/writer/TestRiotWriterGraph.java   |    6 +-
 .../apache/jena/riot/writer/TestTriXWriter.java |    7 +-
 .../jena/riot/writer/TestTurtleWriter.java      |  105 +
 .../apache/jena/sparql/ARQTestRefEngine.java    |   51 +
 .../org/apache/jena/sparql/ARQTestSuite.java    |   90 +
 .../java/org/apache/jena/sparql/TC_DAWG.java    |   95 +
 .../java/org/apache/jena/sparql/TC_General.java |   87 +
 .../org/apache/jena/sparql/TC_SPARQL11.java     |   36 +
 .../org/apache/jena/sparql/TC_Scripted.java     |   43 +
 .../apache/jena/sparql/algebra/TS_Algebra.java  |   38 +
 .../sparql/algebra/TestAlgebraTranslate.java    |  144 +
 .../jena/sparql/algebra/TestClassify.java       |  209 +
 .../jena/sparql/algebra/TestOpAsQuery.java      |  464 ++
 .../apache/jena/sparql/algebra/TestOpVars.java  |   83 +
 .../jena/sparql/algebra/TestPattern2Join.java   |  104 +
 .../jena/sparql/algebra/TestTransformOpExt.java |  104 +
 .../jena/sparql/algebra/TestTransformQuads.java |  173 +
 .../jena/sparql/algebra/TestVarFinder.java      |   91 +
 .../algebra/optimize/AbstractTestTransform.java |  101 +
 .../algebra/optimize/TS_Optimization.java       |   41 +
 .../optimize/TestOptDistinctReduced.java        |  305 +
 .../sparql/algebra/optimize/TestOptimizer.java  |  366 +
 .../sparql/algebra/optimize/TestReorderBGP.java |   87 +
 .../optimize/TestSemanticEquivalence.java       |  296 +
 .../optimize/TestTransformConstantFolding.java  |  173 +
 .../optimize/TestTransformFilterPlacement.java  |  881 +++
 .../algebra/optimize/TestTransformFilters.java  | 1037 +++
 .../optimize/TestTransformMergeBGPs.java        |  104 +
 .../TestTransformPromoteTableEmpty.java         |  167 +
 .../algebra/optimize/TestTransformTopN.java     |  321 +
 .../sparql/algebra/optimize/TestVarRename.java  |  243 +
 .../uniongraph/AbstractTestUnionTransform.java  |   95 +
 .../algebra/uniongraph/Dev_TS_UnionGraph.java   |   35 +
 .../algebra/uniongraph/TestUnionGraph.java      |  106 +
 .../uniongraph/TestUnionTransformQuads.java     |   35 +
 .../uniongraph/TestUnionTransformTriples.java   |   34 +
 .../java/org/apache/jena/sparql/api/TS_API.java |   34 +
 .../org/apache/jena/sparql/api/TestAPI.java     |  322 +
 .../sparql/api/TestQueryExecutionCancel.java    |  143 +
 .../sparql/api/TestQueryExecutionTimeout1.java  |  245 +
 .../sparql/api/TestQueryExecutionTimeout2.java  |  102 +
 .../sparql/core/AbstractDatasetGraphTests.java  |  277 +
 .../jena/sparql/core/AbstractTestDataset.java   |  112 +
 .../sparql/core/AbstractTestDynamicDataset.java |  342 +
 .../core/AbstractTestGraphOverDataset.java      |  172 +
 .../org/apache/jena/sparql/core/TS_Core.java    |   40 +
 .../apache/jena/sparql/core/TestContext.java    |  108 +
 .../jena/sparql/core/TestDatasetGraphMem.java   |   32 +
 .../core/TestDatasetGraphMemTriplesQuads.java   |   32 +
 .../sparql/core/TestDatasetGraphViewGraphs.java |   83 +
 .../sparql/core/TestDatasetGraphWithLock.java   |  123 +
 .../sparql/core/TestDatasetGraphsRegular.java   |   47 +
 .../apache/jena/sparql/core/TestDatasetMem.java |   28 +
 .../jena/sparql/core/TestDatasetMonitor.java    |  141 +
 .../jena/sparql/core/TestDynamicDatasetMem.java |   35 +
 .../sparql/core/TestGraphOverDatasetMem.java    |   48 +
 .../apache/jena/sparql/engine/TS_Engine.java    |   38 +
 .../engine/TestQueryEngineMultiThreaded.java    |  301 +
 .../apache/jena/sparql/engine/TestTableLib.java |  119 +
 .../engine/binding/TestBindingStreams.java      |  177 +
 .../sparql/engine/http/TestQueryEngineHTTP.java |   67 +
 .../jena/sparql/engine/http/TestService.java    |  336 +
 .../sparql/engine/index/TestIndexTable.java     |  206 +
 .../iterator/AbstractTestDistinctReduced.java   |  107 +
 .../engine/iterator/TS_QueryIterators.java      |   34 +
 .../engine/iterator/TestDistinctDataBag.java    |   36 +
 .../iterator/TestDistinctDataBagLimited.java    |   40 +
 .../sparql/engine/iterator/TestDistinctMem.java |   37 +
 .../engine/iterator/TestQueryIterSort.java      |  362 +
 .../org/apache/jena/sparql/expr/TS_Expr.java    |   67 +
 .../jena/sparql/expr/TestCustomAggregates.java  |  166 +
 .../apache/jena/sparql/expr/TestExprLib.java    |   87 +
 .../jena/sparql/expr/TestExprTransform.java     |   52 +
 .../jena/sparql/expr/TestExpressions.java       |  505 ++
 .../jena/sparql/expr/TestExpressions2.java      |  160 +
 .../apache/jena/sparql/expr/TestFunctions.java  |  265 +
 .../apache/jena/sparql/expr/TestFunctions2.java |  558 ++
 .../sparql/expr/TestLeviathanFunctions.java     |  283 +
 .../jena/sparql/expr/TestNodeFunctions.java     |  349 +
 .../apache/jena/sparql/expr/TestNodeValue.java  |  817 +++
 .../jena/sparql/expr/TestNodeValueOps.java      |  202 +
 .../apache/jena/sparql/expr/TestOrdering.java   |  299 +
 .../org/apache/jena/sparql/expr/TestRegex.java  |   67 +
 .../apache/jena/sparql/expr/TestXSDFuncOp.java  |  943 +++
 .../sparql/function/user/TS_UserFunctions.java  |   50 +
 .../function/user/TestFunctionExpansion.java    |  371 +
 .../function/user/TestFunctionNonExpansion.java |  100 +
 .../user/TestUserDefinedFunctionFactory.java    |   87 +
 .../user/TestUserFunctionsInSparql.java         |   75 +
 .../jena/sparql/graph/AbstractTestGraph2.java   |  262 +
 .../graph/AbstractTestPrefixMapping2.java       |  109 +
 .../apache/jena/sparql/graph/GraphsTests.java   |  238 +
 .../org/apache/jena/sparql/graph/TS_Graph.java  |   35 +
 .../jena/sparql/graph/TestDatasetGraphMem.java  |   30 +
 .../apache/jena/sparql/graph/TestDatasets.java  |  306 +
 .../jena/sparql/graph/TestGraphUnionRead.java   |  121 +
 .../jena/sparql/graph/TestGraphsDataBag.java    |  173 +
 .../apache/jena/sparql/graph/TestGraphsMem.java |   70 +
 .../apache/jena/sparql/junit/EarlReport.java    |  157 +
 .../apache/jena/sparql/junit/EarlTestCase.java  |  151 +
 .../org/apache/jena/sparql/junit/QueryTest.java |  491 ++
 .../jena/sparql/junit/QueryTestException.java   |   31 +
 .../sparql/junit/ScriptTestSuiteFactory.java    |  148 +
 .../jena/sparql/junit/SimpleTestRunner.java     |  158 +
 .../jena/sparql/junit/SurpressedTest.java       |   45 +
 .../apache/jena/sparql/junit/SyntaxTest.java    |   85 +
 .../jena/sparql/junit/SyntaxUpdateTest.java     |   83 +
 .../org/apache/jena/sparql/junit/TestItem.java  |  322 +
 .../jena/sparql/junit/TestQueryUtils.java       |   37 +
 .../jena/sparql/junit/TestSerialization.java    |  108 +
 .../jena/sparql/junit/TextListenerOneLine.java  |  129 +
 .../apache/jena/sparql/junit/UpdateTest.java    |  221 +
 .../org/apache/jena/sparql/lang/TS_Lang.java    |   33 +
 .../org/apache/jena/sparql/lang/TestEsc.java    |   74 +
 .../apache/jena/sparql/lang/TestVarScope.java   |  135 +
 .../sparql/modify/AbstractTestUpdateBase.java   |   63 +
 .../sparql/modify/AbstractTestUpdateGraph.java  |  397 +
 .../modify/AbstractTestUpdateGraphMgt.java      |  107 +
 .../apache/jena/sparql/modify/TS_Update.java    |   36 +
 .../jena/sparql/modify/TestUpdateCompare.java   |   99 +
 .../jena/sparql/modify/TestUpdateGraphMem.java  |   31 +
 .../sparql/modify/TestUpdateGraphMgtMem.java    |   29 +
 .../sparql/modify/TestUpdateOperations.java     |   99 +
 .../jena/sparql/modify/TestUpdateWriter.java    |   55 +
 .../jena/sparql/negation/TS_Negation.java       |   32 +
 .../jena/sparql/negation/TestGraphDeltas.java   |  254 +
 .../org/apache/jena/sparql/path/TS_Path.java    |   36 +
 .../org/apache/jena/sparql/path/TestPath.java   |  357 +
 .../org/apache/jena/sparql/path/TestPath2.java  |  158 +
 .../org/apache/jena/sparql/path/TestPathPF.java |  163 +
 .../jena/sparql/resultset/TS_ResultSet.java     |   33 +
 .../jena/sparql/resultset/TestResultSet.java    |  592 ++
 .../sparql/resultset/TestResultSetFormat1.java  |  188 +
 .../sparql/resultset/TestResultSetFormat2.java  |  406 +
 .../apache/jena/sparql/solver/TS_Solver.java    |   31 +
 .../apache/jena/sparql/solver/TestReorder.java  |  228 +
 .../jena/sparql/solver/TestSolverLib.java       |   63 +
 .../org/apache/jena/sparql/syntax/TS_SSE.java   |   33 +
 .../apache/jena/sparql/syntax/TS_Syntax.java    |   37 +
 .../jena/sparql/syntax/TestSSE_Basic.java       |  391 +
 .../jena/sparql/syntax/TestSSE_Builder.java     |  194 +
 .../jena/sparql/syntax/TestSSE_Forms.java       |  168 +
 .../jena/sparql/syntax/TestSerialization.java   |  284 +
 .../syntaxtransform/TestFlattenSyntax.java      |  120 +
 .../syntax/syntaxtransform/TestQueryOps.java    |   59 +
 .../syntaxtransform/TestSubstitution.java       |   93 +
 .../transaction/AbstractTestTransaction.java    |  260 +
 .../jena/sparql/transaction/TS_Transaction.java |   31 +
 .../sparql/transaction/TestTransactionMem.java  |   48 +
 .../org/apache/jena/sparql/util/TS_Util.java    |   35 +
 .../jena/sparql/util/TestDateTimeParsing.java   |  286 +
 .../apache/jena/sparql/util/TestFmtUtils.java   |  236 +
 .../org/apache/jena/sparql/util/TestList.java   |  251 +
 .../apache/jena/sparql/util/TestVersion.java    |   81 +
 .../web/AbstractTestDatasetGraphAccessor.java   |   17 +-
 .../jena/web/TestDatasetGraphAccessorMem.java   |    6 +-
 jena-arq/src/test/java/riotcmd/rdflangtest.java |   49 +-
 .../src/test/resources/log4j-testing.properties |    9 +-
 jena-arq/src/test/resources/log4j.properties    |    9 +-
 .../testing/ARQ/BasicPatterns/result-B-01.n3    |   29 +-
 .../testing/ARQ/Dataset/graph-07-result.ttl     |    1 -
 .../testing/ARQ/Dataset/graph-08-result.ttl     |    1 -
 jena-arq/testing/ARQ/Distinct/distinct-all.srx  |   48 +-
 jena-arq/testing/ARQ/Distinct/distinct-str.srx  |   30 +-
 jena-arq/testing/ARQ/EngineMain/filter-1.rq     |    2 +-
 jena-arq/testing/ARQ/Function/concat-1.arq      |    2 +-
 jena-arq/testing/ARQ/Function/concat-2.arq      |    2 +-
 jena-arq/testing/ARQ/Function/func-03.rq        |    2 +-
 jena-arq/testing/ARQ/Function/func-04.rq        |    2 +-
 jena-arq/testing/ARQ/Function/func-sha1sum-1.rq |    2 +-
 jena-arq/testing/ARQ/Function/func-sha1sum-2.rq |    2 +-
 jena-arq/testing/ARQ/Function/localname-1.rq    |    2 +-
 jena-arq/testing/ARQ/Function/namespace-1.rq    |    2 +-
 jena-arq/testing/ARQ/Function/q-lang-1.rq       |    2 +-
 jena-arq/testing/ARQ/Function/q-lang-2.rq       |    2 +-
 jena-arq/testing/ARQ/Function/strjoin-1.arq     |    2 +-
 jena-arq/testing/ARQ/Function/strjoin-2.arq     |    2 +-
 jena-arq/testing/ARQ/Function/strlen-1.rq       |    2 +-
 jena-arq/testing/ARQ/Function/strlen-2.rq       |    2 +-
 jena-arq/testing/ARQ/Function/substring-1.rq    |    2 +-
 jena-arq/testing/ARQ/Function/substring-2.rq    |    2 +-
 jena-arq/testing/ARQ/Function/substring-3.rq    |    2 +-
 .../testing/ARQ/PropertyFunctions/assign-1.rq   |    2 +-
 .../testing/ARQ/PropertyFunctions/assign-2.rq   |    2 +-
 .../testing/ARQ/PropertyFunctions/assign-3.rq   |    2 +-
 .../testing/ARQ/PropertyFunctions/assign-4.rq   |    2 +-
 .../testing/ARQ/PropertyFunctions/assign-5.rq   |    2 +-
 .../testing/ARQ/PropertyFunctions/assign-6.rq   |    2 +-
 .../testing/ARQ/PropertyFunctions/concat-1.rq   |    2 +-
 .../testing/ARQ/PropertyFunctions/list-1.rq     |    2 +-
 .../testing/ARQ/PropertyFunctions/list-2.rq     |    2 +-
 .../testing/ARQ/PropertyFunctions/list-3.rq     |    2 +-
 .../testing/ARQ/PropertyFunctions/list-4.rq     |    2 +-
 .../testing/ARQ/PropertyFunctions/list-5.rq     |    2 +-
 .../testing/ARQ/PropertyFunctions/list-6.rq     |    2 +-
 .../testing/ARQ/PropertyFunctions/list-7.rq     |    2 +-
 .../testing/ARQ/PropertyFunctions/list-8.rq     |    2 +-
 .../testing/ARQ/PropertyFunctions/list-9.rq     |    2 +-
 .../ARQ/PropertyFunctions/list-index-1.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-index-2.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-index-3.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-index-4.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-index-5.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-index-6.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-index-7.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-index-8.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-index-9.rq       |    2 +-
 .../ARQ/PropertyFunctions/list-length-1.rq      |    2 +-
 .../ARQ/PropertyFunctions/list-length-2.rq      |    2 +-
 .../ARQ/PropertyFunctions/list-length-3.rq      |    2 +-
 jena-arq/testing/ARQ/PropertyFunctions/seq-1.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-1.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-2.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-3.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-4.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-5.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-6.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-7.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-8.rq |    2 +-
 .../testing/ARQ/PropertyFunctions/splitIRI-9.rq |    2 +-
 jena-arq/testing/ARQ/PropertyFunctions/str-1.rq |    2 +-
 jena-arq/testing/ARQ/README                     |    3 +
 jena-arq/testing/ARQ/SPARQL11_RDF11.txt         |   15 +-
 jena-arq/testing/ARQ/Serialization/manifest.ttl |  110 +-
 jena-arq/testing/ARQ/Serialization/serial.sh    |    0
 .../ARQ/Serialization/syntax-subselect-01.arq   |    3 -
 .../ARQ/Serialization/syntax-subselect-01.rq    |    3 +
 .../ARQ/Serialization/syntax-subselect-02.arq   |    3 -
 .../ARQ/Serialization/syntax-subselect-02.rq    |    3 +
 .../ARQ/Serialization/syntax-subselect-03.arq   |    7 -
 .../ARQ/Serialization/syntax-subselect-03.rq    |    7 +
 .../ARQ/Serialization/syntax-subselect-04.arq   |    9 -
 .../ARQ/Serialization/syntax-subselect-04.rq    |    7 +
 .../ARQ/Serialization/syntax-subselect-10.arq   |    3 +
 .../ARQ/Serialization/syntax-subselect-11.arq   |    3 +
 .../ARQ/Serialization/syntax-subselect-12.arq   |    7 +
 .../ARQ/Serialization/syntax-subselect-13.arq   |    9 +
 jena-arq/testing/ARQ/Sort/order-3.rq            |    2 +-
 jena-arq/testing/ARQ/Sort/sort-result-2.ttl     |  336 +-
 jena-arq/testing/ARQ/Sort/sort-result-3.ttl     |  336 +-
 .../testing/ARQ/SubQuery/graph-subquery-1.rq    |    2 +-
 jena-arq/testing/DAWG-Final/SPARQL11_RDF11.txt  |    9 +-
 .../DAWG-Final/distinct/distinct-all.srx        |   48 +-
 .../DAWG-Final/distinct/distinct-str.srx        |   30 +-
 jena-arq/testing/RIOT/Writer/writer-rt-18.ttl   |   12 +
 jena-arq/testing/RIOT/Writer/writer-rt-19.ttl   |   15 +
 jena-arq/testing/RIOT/jsonld/graph1.jsonld      |  108 +-
 jena-arq/testing/RIOT/jsonld/graph2.jsonld      |   63 +
 jena-arq/testing/RIOT/jsonld/graph2.ttl         |   15 +
 jena-base/pom.xml                               |  149 +
 jena-base/src/main/java/jena/cmd/Arg.java       |   69 +
 jena-base/src/main/java/jena/cmd/ArgDecl.java   |   93 +
 jena-base/src/main/java/jena/cmd/ArgModule.java |   26 +
 .../main/java/jena/cmd/ArgModuleGeneral.java    |   25 +
 jena-base/src/main/java/jena/cmd/ArgProc.java   |   27 +
 .../src/main/java/jena/cmd/CmdArgModule.java    |   70 +
 .../src/main/java/jena/cmd/CmdException.java    |   30 +
 .../src/main/java/jena/cmd/CmdGeneral.java      |   92 +
 .../src/main/java/jena/cmd/CmdLineArgs.java     |  413 ++
 jena-base/src/main/java/jena/cmd/CmdMain.java   |  108 +
 .../src/main/java/jena/cmd/CommandLineBase.java |  136 +
 jena-base/src/main/java/jena/cmd/ModBase.java   |   23 +
 .../src/main/java/jena/cmd/ModGeneral.java      |   57 +
 .../src/main/java/jena/cmd/ModVersion.java      |   67 +
 .../java/jena/cmd/TerminationException.java     |   31 +
 jena-base/src/main/java/jena/cmd/Usage.java     |  102 +
 .../src/main/java/jena/cmd/package-info.java    |    6 +
 .../org/apache/jena/atlas/AtlasException.java   |   27 +
 .../apache/jena/atlas/RuntimeIOException.java   |   34 +
 .../java/org/apache/jena/atlas/io/AWriter.java  |   43 +
 .../org/apache/jena/atlas/io/AWriterBase.java   |   33 +
 .../org/apache/jena/atlas/io/BlockUTF8.java     |  281 +
 .../apache/jena/atlas/io/BufferingWriter.java   |  180 +
 .../org/apache/jena/atlas/io/CharStream.java    |   31 +
 .../apache/jena/atlas/io/CharStreamBasic.java   |   58 +
 .../jena/atlas/io/CharStreamBuffered.java       |  166 +
 .../apache/jena/atlas/io/CharStreamReader.java  |   53 +
 .../jena/atlas/io/CharStreamSequence.java       |   47 +
 .../main/java/org/apache/jena/atlas/io/IO.java  |  330 +
 .../org/apache/jena/atlas/io/InStreamASCII.java |   89 +
 .../org/apache/jena/atlas/io/InStreamUTF8.java  |  253 +
 .../jena/atlas/io/IndentedLineBuffer.java       |   50 +
 .../apache/jena/atlas/io/IndentedWriter.java    |  363 +
 .../jena/atlas/io/InputStreamBuffered.java      |  104 +
 .../apache/jena/atlas/io/NullOutputStream.java  |   40 +
 .../org/apache/jena/atlas/io/OutStreamUTF8.java |  179 +
 .../org/apache/jena/atlas/io/OutputUtils.java   |   77 +
 .../apache/jena/atlas/io/PeekInputStream.java   |  217 +
 .../org/apache/jena/atlas/io/PeekReader.java    |  269 +
 .../org/apache/jena/atlas/io/PrintUtils.java    |   31 +
 .../org/apache/jena/atlas/io/Printable.java     |   24 +
 .../org/apache/jena/atlas/io/PrintableBase.java |   26 +
 .../org/apache/jena/atlas/io/StringWriterI.java |   30 +
 .../java/org/apache/jena/atlas/io/Writer2.java  |   97 +
 .../apache/jena/atlas/iterator/AccString.java   |   66 +
 .../apache/jena/atlas/iterator/Accumulate.java  |   27 +
 .../org/apache/jena/atlas/iterator/Action.java  |   30 +
 .../apache/jena/atlas/iterator/ActionCount.java |   33 +
 .../org/apache/jena/atlas/iterator/Filter.java  |   29 +
 .../atlas/iterator/FilterDistinctAdjacent.java  |   39 +
 .../apache/jena/atlas/iterator/FilterStack.java |   69 +
 .../jena/atlas/iterator/FilterUnique.java       |   35 +
 .../org/apache/jena/atlas/iterator/Iter.java    |  732 ++
 .../jena/atlas/iterator/IteratorArray.java      |   99 +
 .../atlas/iterator/IteratorBlockingQueue.java   |   73 +
 .../jena/atlas/iterator/IteratorConcat.java     |  104 +
 .../jena/atlas/iterator/IteratorCons.java       |  122 +
 .../iterator/IteratorDelayedInitialization.java |   78 +
 .../jena/atlas/iterator/IteratorInteger.java    |   61 +
 .../atlas/iterator/IteratorResourceClosing.java |  107 +
 .../jena/atlas/iterator/IteratorSlotted.java    |  117 +
 .../jena/atlas/iterator/IteratorTruncate.java   |   79 +
 .../jena/atlas/iterator/IteratorWithBuffer.java |  132 +
 .../atlas/iterator/IteratorWithHistory.java     |  109 +
 .../jena/atlas/iterator/IteratorWrapper.java    |   41 +
 .../jena/atlas/iterator/NullIterator.java       |   49 +
 .../jena/atlas/iterator/PeekIterator.java       |  100 +
 .../jena/atlas/iterator/PushbackIterator.java   |   62 +
 .../atlas/iterator/RepeatApplyIterator.java     |   86 +
 .../jena/atlas/iterator/SingletonIterator.java  |   51 +
 .../apache/jena/atlas/iterator/Transform.java   |   28 +
 .../jena/atlas/iterator/WrapperIterator.java    |   45 +
 .../apache/jena/atlas/lib/ActionKeyValue.java   |   29 +
 .../org/apache/jena/atlas/lib/AlarmClock.java   |   69 +
 .../java/org/apache/jena/atlas/lib/Alg.java     |  239 +
 .../org/apache/jena/atlas/lib/ArrayUtils.java   |   64 +
 .../java/org/apache/jena/atlas/lib/BitsInt.java |  309 +
 .../org/apache/jena/atlas/lib/BitsLong.java     |  311 +
 .../apache/jena/atlas/lib/ByteBufferLib.java    |  211 +
 .../java/org/apache/jena/atlas/lib/Bytes.java   |  379 +
 .../java/org/apache/jena/atlas/lib/Cache.java   |   57 +
 .../org/apache/jena/atlas/lib/CacheFactory.java |   67 +
 .../org/apache/jena/atlas/lib/CacheSet.java     |   34 +
 .../org/apache/jena/atlas/lib/CacheStats.java   |   28 +
 .../org/apache/jena/atlas/lib/Callback.java     |   25 +
 .../java/org/apache/jena/atlas/lib/Chars.java   |  261 +
 .../org/apache/jena/atlas/lib/Closeable.java    |   27 +
 .../apache/jena/atlas/lib/CollectionUtils.java  |   29 +
 .../org/apache/jena/atlas/lib/ColumnMap.java    |  254 +
 .../main/java/org/apache/jena/atlas/lib/DS.java |   45 +
 .../apache/jena/atlas/lib/DateTimeUtils.java    |  127 +
 .../org/apache/jena/atlas/lib/EscapeStr.java    |  235 +
 .../java/org/apache/jena/atlas/lib/FileOps.java |  229 +
 .../java/org/apache/jena/atlas/lib/Hex.java     |   97 +
 .../java/org/apache/jena/atlas/lib/IRILib.java  |  239 +
 .../jena/atlas/lib/InternalErrorException.java  |   27 +
 .../java/org/apache/jena/atlas/lib/Lib.java     |  126 +
 .../org/apache/jena/atlas/lib/ListUtils.java    |  110 +
 .../java/org/apache/jena/atlas/lib/Map2.java    |  104 +
 .../apache/jena/atlas/lib/NotImplemented.java   |   27 +
 .../org/apache/jena/atlas/lib/NumberUtils.java  |  133 +
 .../java/org/apache/jena/atlas/lib/Pair.java    |   64 +
 .../java/org/apache/jena/atlas/lib/Pool.java    |   30 +
 .../org/apache/jena/atlas/lib/PoolBase.java     |   57 +
 .../org/apache/jena/atlas/lib/PoolSync.java     |   53 +
 .../apache/jena/atlas/lib/PropertiesSorted.java |   87 +
 .../apache/jena/atlas/lib/PropertyUtils.java    |  143 +
 .../org/apache/jena/atlas/lib/RandomLib.java    |   41 +
 .../java/org/apache/jena/atlas/lib/Ref.java     |   54 +
 .../java/org/apache/jena/atlas/lib/RefLong.java |   38 +
 .../org/apache/jena/atlas/lib/Registry.java     |   39 +
 .../jena/atlas/lib/ReverseComparator.java       |   38 +
 .../org/apache/jena/atlas/lib/SetUtils.java     |   60 +
 .../java/org/apache/jena/atlas/lib/Sink.java    |   29 +
 .../org/apache/jena/atlas/lib/SinkCounting.java |   41 +
 .../org/apache/jena/atlas/lib/SinkLogging.java  |   41 +
 .../org/apache/jena/atlas/lib/SinkNull.java     |   33 +
 .../org/apache/jena/atlas/lib/SinkPrint.java    |   45 +
 .../org/apache/jena/atlas/lib/SinkSplit.java    |   55 +
 .../apache/jena/atlas/lib/SinkToCollection.java |   38 +
 .../org/apache/jena/atlas/lib/SinkToQueue.java  |   52 +
 .../org/apache/jena/atlas/lib/SinkWrapper.java  |   44 +
 .../org/apache/jena/atlas/lib/StrUtils.java     |  273 +
 .../java/org/apache/jena/atlas/lib/Sync.java    |   24 +
 .../org/apache/jena/atlas/lib/SystemUtils.java  |   57 +
 .../java/org/apache/jena/atlas/lib/Timer.java   |   72 +
 .../java/org/apache/jena/atlas/lib/Trie.java    |  407 ++
 .../java/org/apache/jena/atlas/lib/Tuple.java   |  141 +
 .../java/org/apache/jena/atlas/lib/Version.java |  139 +
 .../java/org/apache/jena/atlas/lib/XMLLib.java  |   62 +
 .../org/apache/jena/atlas/lib/cache/Cache0.java |   72 +
 .../org/apache/jena/atlas/lib/cache/Cache1.java |  127 +
 .../apache/jena/atlas/lib/cache/CacheGuava.java |  114 +
 .../apache/jena/atlas/lib/cache/CacheOps.java   |   50 +
 .../jena/atlas/lib/cache/CacheSetImpl.java      |   94 +
 .../jena/atlas/lib/cache/CacheSetSync.java      |   66 +
 .../jena/atlas/lib/cache/CacheSetWrapper.java   |   66 +
 .../jena/atlas/lib/cache/CacheSimple.java       |  167 +
 .../jena/atlas/lib/cache/CacheWrapper.java      |   65 +
 .../org/apache/jena/atlas/logging/FmtLog.java   |  162 +
 .../java/org/apache/jena/atlas/logging/Log.java |  127 +
 .../org/apache/jena/atlas/logging/LogCtl.java   |  283 +
 .../jena/atlas/logging/ProgressLogger.java      |  133 +
 .../logging/java/ConsoleHandlerStdout.java      |   75 +
 .../jena/atlas/logging/java/TextFormatter.java  |   53 +
 .../src/main/java/org/apache/jena/base/Sys.java |   27 +
 .../java/org/apache/jena/atlas/TC_Atlas.java    |   41 +
 .../atlas/io/AbstractTestPeekInputStream.java   |  243 +
 .../jena/atlas/io/AbstractTestPeekReader.java   |  243 +
 .../java/org/apache/jena/atlas/io/TS_IO.java    |   45 +
 .../org/apache/jena/atlas/io/TestBlockUTF8.java |  254 +
 .../jena/atlas/io/TestBufferingWriter.java      |   97 +
 .../jena/atlas/io/TestIndentedWriter.java       |   58 +
 .../jena/atlas/io/TestInputStreamBuffered.java  |  109 +
 .../atlas/io/TestPeekInputStreamSource.java     |   44 +
 .../atlas/io/TestPeekReaderCharSequence.java    |   32 +
 .../jena/atlas/io/TestPeekReaderSource.java     |   34 +
 .../apache/jena/atlas/io/TestPrintUtils.java    |   59 +
 .../apache/jena/atlas/io/TestStreamUTF8.java    |  118 +
 .../apache/jena/atlas/iterator/TS_Iterator.java |   38 +
 .../apache/jena/atlas/iterator/TestIter.java    |  425 ++
 .../jena/atlas/iterator/TestIteratorArray.java  |  107 +
 .../jena/atlas/iterator/TestIteratorPeek.java   |  105 +
 .../atlas/iterator/TestIteratorPushback.java    |   93 +
 .../atlas/iterator/TestIteratorSlotted.java     |  136 +
 .../atlas/iterator/TestIteratorWithBuffer.java  |   97 +
 .../atlas/iterator/TestIteratorWithHistory.java |   87 +
 .../org/apache/jena/atlas/junit/BaseTest.java   |   50 +
 .../apache/jena/atlas/junit/TextListener2.java  |   69 +
 .../java/org/apache/jena/atlas/lib/TS_Lib.java  |   58 +
 .../apache/jena/atlas/lib/TestAlarmClock.java   |   92 +
 .../java/org/apache/jena/atlas/lib/TestAlg.java |  226 +
 .../org/apache/jena/atlas/lib/TestBitsInt.java  |  468 ++
 .../org/apache/jena/atlas/lib/TestBitsLong.java |  468 ++
 .../org/apache/jena/atlas/lib/TestBytes.java    |  220 +
 .../org/apache/jena/atlas/lib/TestCache.java    |  149 +
 .../org/apache/jena/atlas/lib/TestCache2.java   |   83 +
 .../apache/jena/atlas/lib/TestColumnMap.java    |  107 +
 .../jena/atlas/lib/TestDateTimeUtils.java       |   82 +
 .../org/apache/jena/atlas/lib/TestFileOps.java  |   78 +
 .../jena/atlas/lib/TestFilenameProcessing.java  |  167 +
 .../java/org/apache/jena/atlas/lib/TestHex.java |   81 +
 .../apache/jena/atlas/lib/TestListUtils.java    |   79 +
 .../apache/jena/atlas/lib/TestNumberUtils.java  |  106 +
 .../org/apache/jena/atlas/lib/TestRefLong.java  |   70 +
 .../jena/atlas/lib/TestReverseComparator.java   |   91 +
 .../org/apache/jena/atlas/lib/TestSetUtils.java |  146 +
 .../org/apache/jena/atlas/lib/TestStrUtils.java |   59 +
 .../org/apache/jena/atlas/lib/TestTrie.java     |  346 +
 .../org/apache/jena/atlas/lib/TestXMLLib.java   |   47 +
 .../jena/atlas/lib/cache/CacheSimpleTest.java   |   43 +
 .../jena/atlas/lib/cache/TestCacheSimple.java   |   57 +
 jena-core/ReleaseNotes.txt                      | 1540 ----
 jena-core/bat/check_root.bat                    |    6 -
 jena-core/bat/make_classpath.bat                |   33 -
 jena-core/bat/n3.bat                            |   13 -
 jena-core/bat/rdfcat.bat                        |   13 -
 jena-core/bat/rdfcompare.bat                    |   13 -
 jena-core/bat/rdfcopy.bat                       |   13 -
 jena-core/bat/rdfparse.bat                      |   13 -
 jena-core/bat/schemagen.bat                     |   13 -
 jena-core/bat/version.bat                       |   13 -
 jena-core/bin/jena_path                         |   11 -
 jena-core/bin/make_classpath                    |   98 -
 jena-core/bin/n3                                |   12 -
 jena-core/bin/rdfcat                            |   12 -
 jena-core/bin/rdfcompare                        |   12 -
 jena-core/bin/rdfcopy                           |   12 -
 jena-core/bin/rdfparse                          |   12 -
 jena-core/bin/schemagen                         |   12 -
 jena-core/bin/version                           |   12 -
 jena-core/pom.xml                               |  120 +-
 .../src/main/java/com/hp/hpl/jena/Jena.java     |   47 -
 .../main/java/com/hp/hpl/jena/JenaRuntime.java  |  148 -
 .../com/hp/hpl/jena/assembler/Assembler.java    |  111 -
 .../hp/hpl/jena/assembler/AssemblerHelp.java    |  305 -
 .../hpl/jena/assembler/BadObjectException.java  |   53 -
 .../java/com/hp/hpl/jena/assembler/Content.java |   78 -
 .../hp/hpl/jena/assembler/ImportManager.java    |  112 -
 .../main/java/com/hp/hpl/jena/assembler/JA.java |  197 -
 .../java/com/hp/hpl/jena/assembler/Mode.java    |   77 -
 .../hp/hpl/jena/assembler/ModelExpansion.java   |  308 -
 .../java/com/hp/hpl/jena/assembler/RuleSet.java |   54 -
 .../assembler/assemblers/AssemblerBase.java     |  155 -
 .../assembler/assemblers/AssemblerGroup.java    |  152 -
 .../assembler/assemblers/ContentAssembler.java  |  192 -
 .../assemblers/DefaultModelAssembler.java       |   36 -
 .../assemblers/DocumentManagerAssembler.java    |   56 -
 .../assemblers/FileManagerAssembler.java        |   46 -
 .../assemblers/FileModelAssembler.java          |  110 -
 .../assembler/assemblers/InfModelAssembler.java |   56 -
 .../assemblers/LocationMapperAssembler.java     |   37 -
 .../assemblers/MemoryModelAssembler.java        |   41 -
 .../assembler/assemblers/ModelAssembler.java    |  133 -
 .../assemblers/ModelSourceAssembler.java        |   33 -
 .../assemblers/NamedModelAssembler.java         |   31 -
 .../assembler/assemblers/OntModelAssembler.java |   63 -
 .../assemblers/OntModelSpecAssembler.java       |  133 -
 .../assemblers/PrefixMappingAssembler.java      |   61 -
 .../assemblers/ReasonerFactoryAssembler.java    |  195 -
 .../assembler/assemblers/RuleSetAssembler.java  |   75 -
 .../assemblers/UnionModelAssembler.java         |   60 -
 .../AmbiguousSpecificTypeException.java         |   58 -
 .../exceptions/AssemblerException.java          |  121 -
 .../exceptions/CannotConstructException.java    |   76 -
 .../exceptions/CannotHaveRulesException.java    |   36 -
 .../exceptions/CannotLoadClassException.java    |   50 -
 .../exceptions/NoImplementationException.java   |   50 -
 .../exceptions/NoSpecificTypeException.java     |   29 -
 .../exceptions/NotExpectedTypeException.java    |   44 -
 .../exceptions/NotUniqueException.java          |   43 -
 .../exceptions/PropertyRequiredException.java   |   49 -
 .../exceptions/ReasonerClashException.java      |   31 -
 .../exceptions/TransactionAbortedException.java |   39 -
 .../exceptions/UnknownEncodingException.java    |   49 -
 .../exceptions/UnknownReasonerException.java    |   42 -
 .../com/hp/hpl/jena/datatypes/BaseDatatype.java |  231 -
 .../jena/datatypes/DatatypeFormatException.java |   60 -
 .../com/hp/hpl/jena/datatypes/RDFDatatype.java  |  120 -
 .../com/hp/hpl/jena/datatypes/TypeMapper.java   |  197 -
 .../java/com/hp/hpl/jena/datatypes/package.html |   31 -
 .../jena/datatypes/xsd/AbstractDateTime.java    |  400 -
 .../xsd/IllegalDateTimeFieldException.java      |   34 -
 .../hp/hpl/jena/datatypes/xsd/XSDDatatype.java  |  633 --
 .../hp/hpl/jena/datatypes/xsd/XSDDateTime.java  |  320 -
 .../hp/hpl/jena/datatypes/xsd/XSDDuration.java  |  326 -
 .../hpl/jena/datatypes/xsd/XSDbase64Binary.java |   47 -
 .../hp/hpl/jena/datatypes/xsd/XSDbinary.java    |   70 -
 .../hp/hpl/jena/datatypes/xsd/XSDhexBinary.java |   47 -
 .../jena/datatypes/xsd/impl/RDFLangString.java  |   66 -
 .../jena/datatypes/xsd/impl/XMLLiteralType.java |  154 -
 .../xsd/impl/XSDAbstractDateTimeType.java       |  471 --
 .../datatypes/xsd/impl/XSDBaseNumericType.java  |  198 -
 .../datatypes/xsd/impl/XSDBaseStringType.java   |   69 -
 .../jena/datatypes/xsd/impl/XSDByteType.java    |   46 -
 .../datatypes/xsd/impl/XSDDateTimeType.java     |   60 -
 .../jena/datatypes/xsd/impl/XSDDateType.java    |   58 -
 .../hpl/jena/datatypes/xsd/impl/XSDDayType.java |   69 -
 .../hpl/jena/datatypes/xsd/impl/XSDDouble.java  |  125 -
 .../datatypes/xsd/impl/XSDDurationType.java     |  139 -
 .../hpl/jena/datatypes/xsd/impl/XSDFloat.java   |  125 -
 .../jena/datatypes/xsd/impl/XSDGenericType.java |   66 -
 .../datatypes/xsd/impl/XSDMonthDayType.java     |   71 -
 .../jena/datatypes/xsd/impl/XSDMonthType.java   |   73 -
 .../jena/datatypes/xsd/impl/XSDPlainType.java   |   56 -
 .../jena/datatypes/xsd/impl/XSDTimeType.java    |   76 -
 .../datatypes/xsd/impl/XSDYearMonthType.java    |   60 -
 .../jena/datatypes/xsd/impl/XSDYearType.java    |   73 -
 .../hp/hpl/jena/datatypes/xsd/impl/package.html |   30 -
 .../com/hp/hpl/jena/datatypes/xsd/package.html  |   35 -
 .../enhanced/AlreadyLinkedViewException.java    |   35 -
 .../hpl/jena/enhanced/BuiltinPersonalities.java |   98 -
 .../java/com/hp/hpl/jena/enhanced/EnhGraph.java |  188 -
 .../java/com/hp/hpl/jena/enhanced/EnhNode.java  |  181 -
 .../hp/hpl/jena/enhanced/GraphPersonality.java  |   28 -
 .../hp/hpl/jena/enhanced/Implementation.java    |   48 -
 .../hp/hpl/jena/enhanced/NodePersonality.java   |   27 -
 .../com/hp/hpl/jena/enhanced/Personality.java   |  100 -
 .../enhanced/PersonalityConfigException.java    |   42 -
 .../com/hp/hpl/jena/enhanced/Polymorphic.java   |  140 -
 .../UnsupportedPolymorphismException.java       |   62 -
 .../java/com/hp/hpl/jena/enhanced/package.html  |   27 -
 .../hp/hpl/jena/graph/BulkUpdateHandler.java    |  142 -
 .../com/hp/hpl/jena/graph/Capabilities.java     |   79 -
 .../java/com/hp/hpl/jena/graph/Factory.java     |   67 -
 .../java/com/hp/hpl/jena/graph/FrontsNode.java  |   33 -
 .../com/hp/hpl/jena/graph/FrontsTriple.java     |   28 -
 .../java/com/hp/hpl/jena/graph/GetTriple.java   |   37 -
 .../main/java/com/hp/hpl/jena/graph/Graph.java  |  178 -
 .../hp/hpl/jena/graph/GraphEventManager.java    |   81 -
 .../java/com/hp/hpl/jena/graph/GraphEvents.java |  103 -
 .../com/hp/hpl/jena/graph/GraphExtract.java     |   91 -
 .../com/hp/hpl/jena/graph/GraphListener.java    |  126 -
 .../java/com/hp/hpl/jena/graph/GraphMaker.java  |  122 -
 .../hpl/jena/graph/GraphStatisticsHandler.java  |   34 -
 .../java/com/hp/hpl/jena/graph/GraphUtil.java   |  289 -
 .../main/java/com/hp/hpl/jena/graph/Node.java   |  407 --
 .../java/com/hp/hpl/jena/graph/NodeFactory.java |  137 -
 .../java/com/hp/hpl/jena/graph/NodeVisitor.java |   35 -
 .../java/com/hp/hpl/jena/graph/Node_ANY.java    |   55 -
 .../java/com/hp/hpl/jena/graph/Node_Blank.java  |   46 -
 .../com/hp/hpl/jena/graph/Node_Concrete.java    |   33 -
 .../java/com/hp/hpl/jena/graph/Node_Fluid.java  |   33 -
 .../com/hp/hpl/jena/graph/Node_Literal.java     |  108 -
 .../java/com/hp/hpl/jena/graph/Node_NULL.java   |   49 -
 .../java/com/hp/hpl/jena/graph/Node_URI.java    |   83 -
 .../com/hp/hpl/jena/graph/Node_Variable.java    |   91 -
 .../hp/hpl/jena/graph/TransactionHandler.java   |   62 -
 .../main/java/com/hp/hpl/jena/graph/Triple.java |  242 -
 .../com/hp/hpl/jena/graph/TripleBoundary.java   |   47 -
 .../com/hp/hpl/jena/graph/TripleIterator.java   |   33 -
 .../java/com/hp/hpl/jena/graph/TripleMatch.java |   48 -
 .../hp/hpl/jena/graph/TripleMatchFilter.java    |   43 -
 .../hp/hpl/jena/graph/TripleMatchIterator.java  |   35 -
 .../hpl/jena/graph/compose/CompositionBase.java |  178 -
 .../com/hp/hpl/jena/graph/compose/Delta.java    |  112 -
 .../hp/hpl/jena/graph/compose/Difference.java   |   55 -
 .../hpl/jena/graph/compose/DisjointUnion.java   |   48 -
 .../com/hp/hpl/jena/graph/compose/Dyadic.java   |   96 -
 .../hp/hpl/jena/graph/compose/Intersection.java |   56 -
 .../hp/hpl/jena/graph/compose/MultiUnion.java   |  221 -
 .../com/hp/hpl/jena/graph/compose/Polyadic.java |  286 -
 .../compose/PolyadicPrefixMappingImpl.java      |  206 -
 .../com/hp/hpl/jena/graph/compose/Union.java    |   68 -
 .../com/hp/hpl/jena/graph/compose/package.html  |   27 -
 .../hp/hpl/jena/graph/impl/AdhocDatatype.java   |   46 -
 .../hp/hpl/jena/graph/impl/AllCapabilities.java |   48 -
 .../hp/hpl/jena/graph/impl/BaseGraphMaker.java  |   79 -
 .../hp/hpl/jena/graph/impl/CollectionGraph.java |  189 -
 .../com/hp/hpl/jena/graph/impl/FileGraph.java   |  207 -
 .../hp/hpl/jena/graph/impl/FileGraphMaker.java  |  225 -
 .../graph/impl/FileGraphTransactionHandler.java |   81 -
 .../com/hp/hpl/jena/graph/impl/GraphBase.java   |  450 --
 .../hp/hpl/jena/graph/impl/GraphMatcher.java    |  965 ---
 .../hpl/jena/graph/impl/GraphWithPerform.java   |   40 -
 .../hp/hpl/jena/graph/impl/LiteralLabel.java    |  112 -
 .../jena/graph/impl/LiteralLabelFactory.java    |  113 -
 .../hpl/jena/graph/impl/LiteralLabelImpl.java   |  495 --
 .../graph/impl/SimpleBulkUpdateHandler.java     |  192 -
 .../hpl/jena/graph/impl/SimpleEventManager.java |  187 -
 .../hpl/jena/graph/impl/SimpleGraphMaker.java   |  114 -
 .../graph/impl/SimpleTransactionHandler.java    |   45 -
 .../jena/graph/impl/TransactionHandlerBase.java |   47 -
 .../com/hp/hpl/jena/graph/impl/TripleStore.java |   84 -
 .../graph/impl/WrappedBulkUpdateHandler.java    |  144 -
 .../hp/hpl/jena/graph/impl/WrappedGraph.java    |  149 -
 .../com/hp/hpl/jena/graph/impl/package.html     |   29 -
 .../java/com/hp/hpl/jena/graph/package.html     |   27 -
 .../java/com/hp/hpl/jena/mem/ArrayBunch.java    |  145 -
 .../main/java/com/hp/hpl/jena/mem/BunchMap.java |   63 -
 .../main/java/com/hp/hpl/jena/mem/GraphMem.java |  164 -
 .../java/com/hp/hpl/jena/mem/GraphMemBase.java  |  103 -
 .../hpl/jena/mem/GraphMemBulkUpdateHandler.java |   44 -
 .../com/hp/hpl/jena/mem/GraphTripleStore.java   |   42 -
 .../hp/hpl/jena/mem/GraphTripleStoreBase.java   |  173 -
 .../hp/hpl/jena/mem/GraphTripleStoreMem.java    |   45 -
 .../java/com/hp/hpl/jena/mem/HashCommon.java    |  378 -
 .../com/hp/hpl/jena/mem/HashedBunchMap.java     |  113 -
 .../com/hp/hpl/jena/mem/HashedTripleBunch.java  |  108 -
 .../com/hp/hpl/jena/mem/NodeToTriplesMap.java   |  141 -
 .../hp/hpl/jena/mem/NodeToTriplesMapBase.java   |  144 -
 .../hp/hpl/jena/mem/NodeToTriplesMapMem.java    |  141 -
 .../com/hp/hpl/jena/mem/ObjectIterator.java     |   79 -
 .../main/java/com/hp/hpl/jena/mem/SetBunch.java |   88 -
 .../hp/hpl/jena/mem/StoreTripleIterator.java    |   62 -
 .../hp/hpl/jena/mem/TrackingTripleIterator.java |   48 -
 .../java/com/hp/hpl/jena/mem/TripleBunch.java   |   76 -
 .../com/hp/hpl/jena/mem/WrappedHashMap.java     |   56 -
 .../main/java/com/hp/hpl/jena/mem/package.html  |   27 -
 .../java/com/hp/hpl/jena/n3/IRIResolver.java    |  231 -
 .../java/com/hp/hpl/jena/n3/JenaReaderBase.java |  137 -
 .../com/hp/hpl/jena/n3/JenaURIException.java    |   32 -
 .../com/hp/hpl/jena/n3/N3IndentedWriter.java    |   93 -
 .../java/com/hp/hpl/jena/n3/N3JenaWriter.java   |  190 -
 .../com/hp/hpl/jena/n3/N3JenaWriterCommon.java  |  981 ---
 .../java/com/hp/hpl/jena/n3/N3JenaWriterPP.java |  639 --
 .../com/hp/hpl/jena/n3/N3JenaWriterPlain.java   |   29 -
 .../com/hp/hpl/jena/n3/N3JenaWriterTriples.java |   64 -
 .../com/hp/hpl/jena/n3/N3TurtleJenaWriter.java  |   40 -
 .../hp/hpl/jena/n3/RelativeURIException.java    |   24 -
 .../main/java/com/hp/hpl/jena/n3/package.html   |   97 -
 .../hp/hpl/jena/n3/turtle/LabelToNodeMap.java   |   56 -
 .../com/hp/hpl/jena/n3/turtle/ParserBase.java   |  453 --
 .../com/hp/hpl/jena/n3/turtle/ParserTurtle.java |   63 -
 .../hp/hpl/jena/n3/turtle/Turtle2NTriples.java  |  170 -
 .../hp/hpl/jena/n3/turtle/TurtleEventDump.java  |   58 -
 .../hpl/jena/n3/turtle/TurtleEventHandler.java  |   30 -
 .../hp/hpl/jena/n3/turtle/TurtleEventNull.java  |   33 -
 .../jena/n3/turtle/TurtleParseException.java    |   34 -
 .../jena/n3/turtle/TurtleRDFGraphInserter.java  |   60 -
 .../com/hp/hpl/jena/n3/turtle/TurtleReader.java |   35 -
 .../jena/n3/turtle/parser/JavaCharStream.java   |  635 --
 .../jena/n3/turtle/parser/ParseException.java   |  209 -
 .../com/hp/hpl/jena/n3/turtle/parser/Token.java |  149 -
 .../jena/n3/turtle/parser/TokenMgrError.java    |  165 -
 .../hpl/jena/n3/turtle/parser/TurtleParser.java |  925 ---
 .../n3/turtle/parser/TurtleParserConstants.java |  231 -
 .../turtle/parser/TurtleParserTokenManager.java | 1457 ----
 .../com/hp/hpl/jena/ontology/AllDifferent.java  |  108 -
 .../jena/ontology/AllValuesFromRestriction.java |   84 -
 .../hpl/jena/ontology/AnnotationProperty.java   |   50 -
 .../jena/ontology/BooleanClassDescription.java  |  112 -
 .../jena/ontology/CardinalityQRestriction.java  |   80 -
 .../jena/ontology/CardinalityRestriction.java   |   79 -
 .../hp/hpl/jena/ontology/ComplementClass.java   |   59 -
 .../hpl/jena/ontology/ConversionException.java  |   71 -
 .../com/hp/hpl/jena/ontology/DataRange.java     |  107 -
 .../hp/hpl/jena/ontology/DatatypeProperty.java  |   47 -
 .../hp/hpl/jena/ontology/EnumeratedClass.java   |  107 -
 .../hpl/jena/ontology/FunctionalProperty.java   |   48 -
 .../hpl/jena/ontology/HasValueRestriction.java  |   82 -
 .../com/hp/hpl/jena/ontology/Individual.java    |  189 -
 .../hp/hpl/jena/ontology/IntersectionClass.java |   48 -
 .../ontology/InverseFunctionalProperty.java     |   53 -
 .../ontology/LanguageConsistencyException.java  |   65 -
 .../ontology/MaxCardinalityQRestriction.java    |   80 -
 .../ontology/MaxCardinalityRestriction.java     |   80 -
 .../ontology/MinCardinalityQRestriction.java    |   80 -
 .../ontology/MinCardinalityRestriction.java     |   79 -
 .../hp/hpl/jena/ontology/ObjectProperty.java    |   47 -
 .../java/com/hp/hpl/jena/ontology/OntClass.java |  595 --
 .../hpl/jena/ontology/OntDocumentManager.java   | 1177 ---
 .../java/com/hp/hpl/jena/ontology/OntModel.java | 1719 -----
 .../com/hp/hpl/jena/ontology/OntModelSpec.java  |  466 --
 .../com/hp/hpl/jena/ontology/OntProperty.java   |  601 --
 .../com/hp/hpl/jena/ontology/OntResource.java   |  788 --
 .../java/com/hp/hpl/jena/ontology/OntTools.java |  616 --
 .../java/com/hp/hpl/jena/ontology/Ontology.java |  248 -
 .../hp/hpl/jena/ontology/OntologyException.java |   69 -
 .../java/com/hp/hpl/jena/ontology/Profile.java  |  767 --
 .../hp/hpl/jena/ontology/ProfileException.java  |   69 -
 .../hp/hpl/jena/ontology/ProfileRegistry.java   |  141 -
 .../hpl/jena/ontology/QualifiedRestriction.java |   95 -
 .../com/hp/hpl/jena/ontology/Restriction.java   |  237 -
 .../ontology/SomeValuesFromRestriction.java     |   84 -
 .../hp/hpl/jena/ontology/SymmetricProperty.java |   46 -
 .../hpl/jena/ontology/TransitiveProperty.java   |   47 -
 .../com/hp/hpl/jena/ontology/UnionClass.java    |   48 -
 .../hpl/jena/ontology/impl/AbstractProfile.java |  156 -
 .../jena/ontology/impl/AllDifferentImpl.java    |  189 -
 .../impl/AllValuesFromRestrictionImpl.java      |  176 -
 .../ontology/impl/AnnotationPropertyImpl.java   |  124 -
 .../impl/BooleanClassDescriptionImpl.java       |  173 -
 .../impl/CardinalityQRestrictionImpl.java       |  153 -
 .../impl/CardinalityRestrictionImpl.java        |  149 -
 .../jena/ontology/impl/ComplementClassImpl.java |  222 -
 .../hpl/jena/ontology/impl/DataRangeImpl.java   |  190 -
 .../ontology/impl/DatatypePropertyImpl.java     |  103 -
 .../jena/ontology/impl/EnumeratedClassImpl.java |  189 -
 .../ontology/impl/FunctionalPropertyImpl.java   |  103 -
 .../ontology/impl/HasValueRestrictionImpl.java  |  162 -
 .../hpl/jena/ontology/impl/IndividualImpl.java  |  273 -
 .../ontology/impl/IntersectionClassImpl.java    |  110 -
 .../impl/InverseFunctionalPropertyImpl.java     |  103 -
 .../impl/MaxCardinalityQRestrictionImpl.java    |  155 -
 .../impl/MaxCardinalityRestrictionImpl.java     |  149 -
 .../impl/MinCardinalityQRestrictionImpl.java    |  154 -
 .../impl/MinCardinalityRestrictionImpl.java     |  150 -
 .../hp/hpl/jena/ontology/impl/OWLDLProfile.java |  301 -
 .../hpl/jena/ontology/impl/OWLLiteProfile.java  |  307 -
 .../hp/hpl/jena/ontology/impl/OWLProfile.java   |  573 --
 .../jena/ontology/impl/ObjectPropertyImpl.java  |  146 -
 .../hp/hpl/jena/ontology/impl/OntClassImpl.java | 1118 ---
 .../hp/hpl/jena/ontology/impl/OntModelImpl.java | 3216 --------
 .../hpl/jena/ontology/impl/OntPropertyImpl.java |  920 ---
 .../hpl/jena/ontology/impl/OntResourceImpl.java | 1748 -----
 .../hp/hpl/jena/ontology/impl/OntologyImpl.java |  380 -
 .../ontology/impl/QualifiedRestrictionImpl.java |  190 -
 .../hp/hpl/jena/ontology/impl/RDFSProfile.java  |  342 -
 .../hpl/jena/ontology/impl/RestrictionImpl.java |  370 -
 .../impl/SomeValuesFromRestrictionImpl.java     |  176 -
 .../ontology/impl/SymmetricPropertyImpl.java    |  103 -
 .../ontology/impl/TransitivePropertyImpl.java   |  103 -
 .../hpl/jena/ontology/impl/UnionClassImpl.java  |  113 -
 .../com/hp/hpl/jena/ontology/impl/package.html  |   29 -
 .../java/com/hp/hpl/jena/ontology/package.html  |   38 -
 .../hpl/jena/rdf/listeners/ChangedListener.java |   67 -
 .../hp/hpl/jena/rdf/listeners/NullListener.java |   53 -
 .../hpl/jena/rdf/listeners/ObjectListener.java  |   64 -
 .../jena/rdf/listeners/StatementListener.java   |   90 -
 .../com/hp/hpl/jena/rdf/listeners/package.html  |   33 -
 .../java/com/hp/hpl/jena/rdf/model/Alt.java     |  223 -
 .../rdf/model/AltHasNoDefaultException.java     |   30 -
 .../java/com/hp/hpl/jena/rdf/model/AnonId.java  |  117 -
 .../java/com/hp/hpl/jena/rdf/model/Bag.java     |   61 -
 .../com/hp/hpl/jena/rdf/model/Container.java    |  246 -
 .../jena/rdf/model/DoesNotReifyException.java   |   33 -
 .../hpl/jena/rdf/model/EmptyListException.java  |   85 -
 .../rdf/model/EmptyListUpdateException.java     |   75 -
 .../hpl/jena/rdf/model/HasNoModelException.java |   31 -
 .../com/hp/hpl/jena/rdf/model/InfModel.java     |  144 -
 .../jena/rdf/model/InvalidListException.java    |   84 -
 .../hpl/jena/rdf/model/ListIndexException.java  |   84 -
 .../java/com/hp/hpl/jena/rdf/model/Literal.java |  217 -
 .../rdf/model/LiteralRequiredException.java     |   35 -
 .../java/com/hp/hpl/jena/rdf/model/Model.java   | 1019 ---
 .../jena/rdf/model/ModelChangedListener.java    |  111 -
 .../com/hp/hpl/jena/rdf/model/ModelCon.java     |  805 --
 .../com/hp/hpl/jena/rdf/model/ModelExtract.java |   64 -
 .../com/hp/hpl/jena/rdf/model/ModelFactory.java |  317 -
 .../hp/hpl/jena/rdf/model/ModelFactoryBase.java |   44 -
 .../com/hp/hpl/jena/rdf/model/ModelGetter.java  |   46 -
 .../hpl/jena/rdf/model/ModelGraphInterface.java |   51 -
 .../com/hp/hpl/jena/rdf/model/ModelMaker.java   |  113 -
 .../com/hp/hpl/jena/rdf/model/ModelReader.java  |   31 -
 .../com/hp/hpl/jena/rdf/model/ModelSource.java  |   78 -
 .../com/hp/hpl/jena/rdf/model/NodeIterator.java |   70 -
 .../com/hp/hpl/jena/rdf/model/NsIterator.java   |   40 -
 .../com/hp/hpl/jena/rdf/model/Property.java     |   58 -
 .../hp/hpl/jena/rdf/model/RDFErrorHandler.java  |   37 -
 .../java/com/hp/hpl/jena/rdf/model/RDFList.java |  545 --
 .../java/com/hp/hpl/jena/rdf/model/RDFNode.java |  124 -
 .../com/hp/hpl/jena/rdf/model/RDFReader.java    |   94 -
 .../com/hp/hpl/jena/rdf/model/RDFReaderF.java   |   79 -
 .../com/hp/hpl/jena/rdf/model/RDFVisitor.java   |   48 -
 .../com/hp/hpl/jena/rdf/model/RDFWriter.java    |   91 -
 .../com/hp/hpl/jena/rdf/model/RDFWriterF.java   |   73 -
 .../com/hp/hpl/jena/rdf/model/RSIterator.java   |   32 -
 .../hp/hpl/jena/rdf/model/ReifiedStatement.java |   32 -
 .../com/hp/hpl/jena/rdf/model/ResIterator.java  |   34 -
 .../com/hp/hpl/jena/rdf/model/Resource.java     |  364 -
 .../com/hp/hpl/jena/rdf/model/ResourceF.java    |   36 -
 .../hp/hpl/jena/rdf/model/ResourceFactory.java  |  313 -
 .../rdf/model/ResourceRequiredException.java    |   35 -
 .../com/hp/hpl/jena/rdf/model/Selector.java     |   63 -
 .../java/com/hp/hpl/jena/rdf/model/Seq.java     |  517 --
 .../jena/rdf/model/SeqIndexBoundsException.java |   30 -
 .../hp/hpl/jena/rdf/model/SimpleSelector.java   |  287 -
 .../com/hp/hpl/jena/rdf/model/Statement.java    |  417 --
 .../hpl/jena/rdf/model/StatementBoundary.java   |   39 -
 .../jena/rdf/model/StatementBoundaryBase.java   |   63 -
 .../jena/rdf/model/StatementTripleBoundary.java |   51 -
 .../com/hp/hpl/jena/rdf/model/StmtIterator.java |   43 -
 .../com/hp/hpl/jena/rdf/model/impl/AltImpl.java |  206 -
 .../com/hp/hpl/jena/rdf/model/impl/BagImpl.java |   59 -
 .../model/impl/ContNodeIteratorFactoryImpl.java |   33 -
 .../rdf/model/impl/ContNodeIteratorImpl.java    |   78 -
 .../hp/hpl/jena/rdf/model/impl/ContainerI.java  |   33 -
 .../hpl/jena/rdf/model/impl/ContainerImpl.java  |  257 -
 .../com/hp/hpl/jena/rdf/model/impl/IO_Ctl.java  |   71 -
 .../hpl/jena/rdf/model/impl/InfModelImpl.java   |  179 -
 .../jena/rdf/model/impl/IteratorFactory.java    |   84 -
 .../hp/hpl/jena/rdf/model/impl/LiteralImpl.java |  311 -
 .../jena/rdf/model/impl/MemoryModelGetter.java  |   43 -
 .../hp/hpl/jena/rdf/model/impl/ModelCom.java    | 1598 ----
 .../rdf/model/impl/ModelListenerAdapter.java    |  101 -
 .../hpl/jena/rdf/model/impl/ModelMakerImpl.java |  106 -
 .../hpl/jena/rdf/model/impl/ModelReifier.java   |  180 -
 .../hpl/jena/rdf/model/impl/NTripleReader.java  |  494 --
 .../hpl/jena/rdf/model/impl/NTripleWriter.java  |  231 -
 .../rdf/model/impl/NodeIteratorFactory.java     |   31 -
 .../jena/rdf/model/impl/NodeIteratorImpl.java   |   40 -
 .../hpl/jena/rdf/model/impl/NsIteratorImpl.java |   37 -
 .../hpl/jena/rdf/model/impl/PropertyImpl.java   |  155 -
 .../rdf/model/impl/RDFDefaultErrorHandler.java  |   62 -
 .../hp/hpl/jena/rdf/model/impl/RDFListImpl.java | 1238 ----
 .../hpl/jena/rdf/model/impl/RDFReaderFImpl.java |  156 -
 .../hpl/jena/rdf/model/impl/RDFWriterFImpl.java |  174 -
 .../hpl/jena/rdf/model/impl/RSIteratorImpl.java |   35 -
 .../rdf/model/impl/ReifiedStatementImpl.java    |  149 -
 .../hp/hpl/jena/rdf/model/impl/ReifierStd.java  |  294 -
 .../jena/rdf/model/impl/ResIteratorImpl.java    |   44 -
 .../hpl/jena/rdf/model/impl/ResourceImpl.java   |  394 -
 .../hpl/jena/rdf/model/impl/SelectorImpl.java   |  211 -
 .../com/hp/hpl/jena/rdf/model/impl/SeqImpl.java |  380 -
 .../model/impl/SeqNodeIteratorFactoryImpl.java  |   33 -
 .../rdf/model/impl/SeqNodeIteratorImpl.java     |   68 -
 .../hpl/jena/rdf/model/impl/StatementBase.java  |  177 -
 .../hpl/jena/rdf/model/impl/StatementImpl.java  |  227 -
 .../jena/rdf/model/impl/StmtIteratorImpl.java   |   53 -
 .../com/hp/hpl/jena/rdf/model/impl/Util.java    |  238 -
 .../com/hp/hpl/jena/rdf/model/impl/package.html |   29 -
 .../java/com/hp/hpl/jena/rdf/model/package.html |   27 -
 .../hp/hpl/jena/rdfxml/xmlinput/ALiteral.java   |   64 -
 .../com/hp/hpl/jena/rdfxml/xmlinput/ARP.java    |  236 -
 .../hp/hpl/jena/rdfxml/xmlinput/ARPConfig.java  |   84 -
 .../jena/rdfxml/xmlinput/ARPErrorNumbers.java   |  538 --
 .../jena/rdfxml/xmlinput/ARPEventHandler.java   |   36 -
 .../hpl/jena/rdfxml/xmlinput/ARPHandlers.java   |  187 -
 .../hp/hpl/jena/rdfxml/xmlinput/ARPOptions.java |  258 -
 .../hp/hpl/jena/rdfxml/xmlinput/AResource.java  |   65 -
 .../hp/hpl/jena/rdfxml/xmlinput/DOM2Model.java  |  120 -
 .../jena/rdfxml/xmlinput/ExtendedHandler.java   |  112 -
 .../xmlinput/FatalParsingErrorException.java    |   35 -
 .../hpl/jena/rdfxml/xmlinput/JenaHandler.java   |  104 -
 .../hp/hpl/jena/rdfxml/xmlinput/JenaReader.java |  559 --
 .../hp/hpl/jena/rdfxml/xmlinput/NTriple.java    |  656 --
 .../jena/rdfxml/xmlinput/NamespaceHandler.java  |   50 -
 .../jena/rdfxml/xmlinput/ParseException.java    |  209 -
 .../hp/hpl/jena/rdfxml/xmlinput/SAX2Model.java  |  275 -
 .../hp/hpl/jena/rdfxml/xmlinput/SAX2RDF.java    |  187 -
 .../hp/hpl/jena/rdfxml/xmlinput/StAX2Model.java |   58 -
 .../hp/hpl/jena/rdfxml/xmlinput/StAX2SAX.java   |  202 -
 .../jena/rdfxml/xmlinput/StatementHandler.java  |   47 -
 .../hp/hpl/jena/rdfxml/xmlinput/impl/ANode.java |   23 -
 .../xmlinput/impl/ARPDatatypeLiteral.java       |   76 -
 .../jena/rdfxml/xmlinput/impl/ARPLocation.java  |   69 -
 .../jena/rdfxml/xmlinput/impl/ARPResource.java  |  146 -
 .../xmlinput/impl/ARPSaxErrorHandler.java       |   58 -
 .../jena/rdfxml/xmlinput/impl/ARPString.java    |   98 -
 .../rdfxml/xmlinput/impl/AResourceInternal.java |   42 -
 .../rdfxml/xmlinput/impl/AbsXMLContext.java     |  194 -
 .../rdfxml/xmlinput/impl/AttributeLexer.java    |  241 -
 .../rdfxml/xmlinput/impl/CharacterModel.java    |  308 -
 .../xmlinput/impl/DefaultErrorHandler.java      |   56 -
 .../jena/rdfxml/xmlinput/impl/ElementLexer.java |   92 -
 .../xmlinput/impl/LexicalHandlerImpl.java       |   80 -
 .../hp/hpl/jena/rdfxml/xmlinput/impl/Names.java |   81 -
 .../rdfxml/xmlinput/impl/ParserSupport.java     |  238 -
 .../jena/rdfxml/xmlinput/impl/QNameLexer.java   |  231 -
 .../jena/rdfxml/xmlinput/impl/RDFXMLParser.java |  220 -
 .../jena/rdfxml/xmlinput/impl/SAX2RDFImpl.java  |  300 -
 .../hp/hpl/jena/rdfxml/xmlinput/impl/Taint.java |   28 -
 .../jena/rdfxml/xmlinput/impl/TaintImpl.java    |   39 -
 .../jena/rdfxml/xmlinput/impl/URIReference.java |  189 -
 .../xmlinput/impl/UntaintableURIReference.java  |   30 -
 .../rdfxml/xmlinput/impl/WrappedException.java  |   76 -
 .../xmlinput/impl/XMLBaselessContext.java       |  113 -
 .../jena/rdfxml/xmlinput/impl/XMLContext.java   |  123 -
 .../jena/rdfxml/xmlinput/impl/XMLHandler.java   |  546 --
 .../hp/hpl/jena/rdfxml/xmlinput/package.html    |   57 -
 .../AbsWantLiteralValueOrDescription.java       |  100 -
 .../rdfxml/xmlinput/states/AbsXMLLiteral.java   |  256 -
 .../jena/rdfxml/xmlinput/states/Collection.java |   93 -
 .../hpl/jena/rdfxml/xmlinput/states/Frame.java  |  173 -
 .../hpl/jena/rdfxml/xmlinput/states/FrameI.java |   46 -
 .../xmlinput/states/HasSubjectFrameI.java       |   34 -
 .../rdfxml/xmlinput/states/InnerXMLLiteral.java |   40 -
 .../rdfxml/xmlinput/states/LookingForRDF.java   |   55 -
 .../rdfxml/xmlinput/states/OuterXMLLiteral.java |   54 -
 .../rdfxml/xmlinput/states/RDFCollection.java   |   42 -
 .../states/StartStateRDForDescription.java      |   56 -
 .../rdfxml/xmlinput/states/WantDescription.java |  126 -
 .../jena/rdfxml/xmlinput/states/WantEmpty.java  |   44 -
 .../states/WantLiteralValueOrDescription.java   |   92 -
 .../xmlinput/states/WantPropertyElement.java    |  437 --
 .../states/WantTopLevelDescription.java         |   55 -
 .../xmlinput/states/WantTypedLiteral.java       |   60 -
 .../xmlinput/states/WantsObjectFrameI.java      |   22 -
 .../rdfxml/xmlinput/states/WantsObjectI.java    |   25 -
 .../jena/rdfxml/xmloutput/RDFXMLWriterI.java    |  226 -
 .../jena/rdfxml/xmloutput/impl/Abbreviated.java |  163 -
 .../rdfxml/xmloutput/impl/BaseXMLWriter.java    |  907 ---
 .../hpl/jena/rdfxml/xmloutput/impl/Basic.java   |  184 -
 .../jena/rdfxml/xmloutput/impl/PairEntry.java   |   53 -
 .../jena/rdfxml/xmloutput/impl/Relation.java    |  272 -
 .../rdfxml/xmloutput/impl/SimpleLogger.java     |   25 -
 .../jena/rdfxml/xmloutput/impl/Unparser.java    | 1745 -----
 .../hp/hpl/jena/rdfxml/xmloutput/package.html   |   27 -
 .../com/hp/hpl/jena/reasoner/BaseInfGraph.java  |  544 --
 .../com/hp/hpl/jena/reasoner/Derivation.java    |   47 -
 .../java/com/hp/hpl/jena/reasoner/FGraph.java   |   89 -
 .../java/com/hp/hpl/jena/reasoner/Finder.java   |   56 -
 .../com/hp/hpl/jena/reasoner/FinderUtil.java    |  129 -
 .../reasoner/IllegalParameterException.java     |   35 -
 .../java/com/hp/hpl/jena/reasoner/InfGraph.java |  153 -
 .../java/com/hp/hpl/jena/reasoner/Reasoner.java |  145 -
 .../hp/hpl/jena/reasoner/ReasonerException.java |   48 -
 .../hp/hpl/jena/reasoner/ReasonerFactory.java   |   50 -
 .../hp/hpl/jena/reasoner/ReasonerRegistry.java  |  258 -
 .../jena/reasoner/StandardValidityReport.java   |  112 -
 .../com/hp/hpl/jena/reasoner/TriplePattern.java |  354 -
 .../hp/hpl/jena/reasoner/ValidityReport.java    |  132 -
 .../java/com/hp/hpl/jena/reasoner/package.html  |   83 -
 .../reasoner/rulesys/BackwardRuleInfGraphI.java |   68 -
 .../rulesys/BasicForwardRuleInfGraph.java       |  526 --
 .../rulesys/BasicForwardRuleReasoner.java       |  227 -
 .../reasoner/rulesys/BindingEnvironment.java    |   57 -
 .../hp/hpl/jena/reasoner/rulesys/Builtin.java   |   92 -
 .../jena/reasoner/rulesys/BuiltinException.java |   39 -
 .../jena/reasoner/rulesys/BuiltinRegistry.java  |  146 -
 .../hpl/jena/reasoner/rulesys/ClauseEntry.java  |   33 -
 .../jena/reasoner/rulesys/FBRuleInfGraph.java   |  993 ---
 .../jena/reasoner/rulesys/FBRuleReasoner.java   |  420 --
 .../reasoner/rulesys/ForwardRuleInfGraphI.java  |   90 -
 .../hp/hpl/jena/reasoner/rulesys/Functor.java   |  300 -
 .../reasoner/rulesys/GenericRuleReasoner.java   |  441 --
 .../rulesys/GenericRuleReasonerFactory.java     |   84 -
 .../rulesys/LPBackwardRuleInfGraph.java         |  373 -
 .../rulesys/LPBackwardRuleReasoner.java         |  232 -
 .../reasoner/rulesys/Node_RuleVariable.java     |  195 -
 .../reasoner/rulesys/OWLFBRuleReasoner.java     |  149 -
 .../rulesys/OWLFBRuleReasonerFactory.java       |  129 -
 .../jena/reasoner/rulesys/OWLMicroReasoner.java |   98 -
 .../rulesys/OWLMicroReasonerFactory.java        |  126 -
 .../jena/reasoner/rulesys/OWLMiniReasoner.java  |   93 -
 .../rulesys/OWLMiniReasonerFactory.java         |  127 -
 .../reasoner/rulesys/RDFSFBRuleReasoner.java    |   66 -
 .../rulesys/RDFSFBRuleReasonerFactory.java      |   88 -
 .../rulesys/RDFSForwardRuleReasoner.java        |   73 -
 .../jena/reasoner/rulesys/RDFSRuleInfGraph.java |   68 -
 .../jena/reasoner/rulesys/RDFSRuleReasoner.java |  221 -
 .../rulesys/RDFSRuleReasonerFactory.java        |   87 -
 .../jena/reasoner/rulesys/RETERuleInfGraph.java |  111 -
 .../com/hp/hpl/jena/reasoner/rulesys/Rule.java  | 1123 ---
 .../hpl/jena/reasoner/rulesys/RuleContext.java  |   88 -
 .../jena/reasoner/rulesys/RuleDerivation.java   |  169 -
 .../reasoner/rulesys/RulePreprocessHook.java    |   54 -
 .../hpl/jena/reasoner/rulesys/RuleReasoner.java |   42 -
 .../reasoner/rulesys/RuleReasonerFactory.java   |   31 -
 .../hpl/jena/reasoner/rulesys/SilentAddI.java   |   35 -
 .../com/hp/hpl/jena/reasoner/rulesys/Util.java  |  373 -
 .../jena/reasoner/rulesys/builtins/AddOne.java  |   73 -
 .../rulesys/builtins/AssertDisjointPairs.java   |   73 -
 .../reasoner/rulesys/builtins/BaseBuiltin.java  |  118 -
 .../jena/reasoner/rulesys/builtins/Bound.java   |   57 -
 .../rulesys/builtins/CountLiteralValues.java    |   85 -
 .../reasoner/rulesys/builtins/Difference.java   |   84 -
 .../jena/reasoner/rulesys/builtins/Drop.java    |   91 -
 .../jena/reasoner/rulesys/builtins/Equal.java   |   68 -
 .../hpl/jena/reasoner/rulesys/builtins/GE.java  |   66 -
 .../reasoner/rulesys/builtins/GreaterThan.java  |   67 -
 .../jena/reasoner/rulesys/builtins/Hide.java    |   84 -
 .../jena/reasoner/rulesys/builtins/IsBNode.java |   62 -
 .../jena/reasoner/rulesys/builtins/IsDType.java |   90 -
 .../reasoner/rulesys/builtins/IsFunctor.java    |   63 -
 .../reasoner/rulesys/builtins/IsLiteral.java    |   72 -
 .../hpl/jena/reasoner/rulesys/builtins/LE.java  |   66 -
 .../reasoner/rulesys/builtins/LessThan.java     |   67 -
 .../reasoner/rulesys/builtins/ListContains.java |   84 -
 .../reasoner/rulesys/builtins/ListEntry.java    |   96 -
 .../reasoner/rulesys/builtins/ListEqual.java    |   94 -
 .../reasoner/rulesys/builtins/ListLength.java   |   94 -
 .../rulesys/builtins/ListMapAsObject.java       |   73 -
 .../rulesys/builtins/ListMapAsSubject.java      |   72 -
 .../rulesys/builtins/ListNotContains.java       |   64 -
 .../reasoner/rulesys/builtins/ListNotEqual.java |   63 -
 .../reasoner/rulesys/builtins/MakeInstance.java |   77 -
 .../reasoner/rulesys/builtins/MakeSkolem.java   |   89 -
 .../reasoner/rulesys/builtins/MakeTemp.java     |   70 -
 .../hpl/jena/reasoner/rulesys/builtins/Max.java |   82 -
 .../hpl/jena/reasoner/rulesys/builtins/Min.java |   83 -
 .../jena/reasoner/rulesys/builtins/NoValue.java |   81 -
 .../reasoner/rulesys/builtins/NotBNode.java     |   62 -
 .../reasoner/rulesys/builtins/NotDType.java     |   64 -
 .../reasoner/rulesys/builtins/NotEqual.java     |   68 -
 .../reasoner/rulesys/builtins/NotFunctor.java   |   61 -
 .../reasoner/rulesys/builtins/NotLiteral.java   |   62 -
 .../hpl/jena/reasoner/rulesys/builtins/Now.java |   67 -
 .../jena/reasoner/rulesys/builtins/Print.java   |   77 -
 .../jena/reasoner/rulesys/builtins/Product.java |   82 -
 .../reasoner/rulesys/builtins/Quotient.java     |   87 -
 .../jena/reasoner/rulesys/builtins/Regex.java   |   90 -
 .../jena/reasoner/rulesys/builtins/Remove.java  |   78 -
 .../reasoner/rulesys/builtins/StrConcat.java    |   88 -
 .../hpl/jena/reasoner/rulesys/builtins/Sum.java |   82 -
 .../jena/reasoner/rulesys/builtins/Table.java   |   66 -
 .../reasoner/rulesys/builtins/TableAll.java     |   62 -
 .../jena/reasoner/rulesys/builtins/Unbound.java |   58 -
 .../reasoner/rulesys/builtins/UriConcat.java    |   63 -
 .../jena/reasoner/rulesys/builtins/package.html |   30 -
 .../reasoner/rulesys/impl/BBRuleContext.java    |  156 -
 .../reasoner/rulesys/impl/BFRuleContext.java    |  245 -
 .../reasoner/rulesys/impl/BindingStack.java     |  220 -
 .../reasoner/rulesys/impl/BindingVector.java    |  376 -
 .../rulesys/impl/BindingVectorMultiSet.java     |  208 -
 .../reasoner/rulesys/impl/ChoicePointFrame.java |   97 -
 .../rulesys/impl/ConsumerChoicePointFrame.java  |  199 -
 .../reasoner/rulesys/impl/EnvironmentFrame.java |   84 -
 .../impl/EnvironmentFrameWithDerivation.java    |   88 -
 .../jena/reasoner/rulesys/impl/FRuleEngine.java |  672 --
 .../reasoner/rulesys/impl/FRuleEngineI.java     |  100 -
 .../rulesys/impl/FRuleEngineIFactory.java       |   77 -
 .../jena/reasoner/rulesys/impl/FrameObject.java |   60 -
 .../jena/reasoner/rulesys/impl/Generator.java   |  421 --
 .../rulesys/impl/GenericChoiceFrame.java        |   62 -
 .../rulesys/impl/GenericTripleMatchFrame.java   |  121 -
 .../reasoner/rulesys/impl/LPAgendaEntry.java    |   43 -
 .../reasoner/rulesys/impl/LPBRuleEngine.java    |  441 --
 .../rulesys/impl/LPBindingEnvironment.java      |   91 -
 .../reasoner/rulesys/impl/LPInterpreter.java    |  830 ---
 .../rulesys/impl/LPInterpreterContext.java      |   43 -
 .../rulesys/impl/LPInterpreterState.java        |   30 -
 .../jena/reasoner/rulesys/impl/LPRuleStore.java |  275 -
 .../rulesys/impl/LPRuleSyntaxException.java     |   49 -
 .../rulesys/impl/LPTopGoalIterator.java         |  268 -
 .../rulesys/impl/MutableTriplePattern.java      |   46 -
 .../impl/OWLExptRuleTranslationHook.java        |  102 -
 .../rulesys/impl/OWLRuleTranslationHook.java    |  140 -
 .../rulesys/impl/RDFSCMPPreprocessHook.java     |   77 -
 .../reasoner/rulesys/impl/RETEClauseFilter.java |  267 -
 .../reasoner/rulesys/impl/RETEConflictSet.java  |  215 -
 .../jena/reasoner/rulesys/impl/RETEEngine.java  |  631 --
 .../jena/reasoner/rulesys/impl/RETENode.java    |   35 -
 .../jena/reasoner/rulesys/impl/RETEQueue.java   |  152 -
 .../reasoner/rulesys/impl/RETERuleContext.java  |  208 -
 .../reasoner/rulesys/impl/RETESinkNode.java     |   35 -
 .../reasoner/rulesys/impl/RETESourceNode.java   |   31 -
 .../reasoner/rulesys/impl/RETETerminal.java     |  101 -
 .../reasoner/rulesys/impl/RuleClauseCode.java   |  844 ---
 .../jena/reasoner/rulesys/impl/RuleStore.java   |  188 -
 .../jena/reasoner/rulesys/impl/SafeGraph.java   |   66 -
 .../jena/reasoner/rulesys/impl/StateFlag.java   |   53 -
 .../reasoner/rulesys/impl/TempNodeCache.java    |  139 -
 .../rulesys/impl/TopLevelTripleMatchFrame.java  |   71 -
 .../reasoner/rulesys/impl/TripleMatchFrame.java |   78 -
 .../rulesys/impl/WrappedReasonerFactory.java    |   84 -
 .../hpl/jena/reasoner/rulesys/impl/package.html |   27 -
 .../hp/hpl/jena/reasoner/rulesys/package.html   |   41 -
 .../reasoner/transitiveReasoner/GraphNode.java  |  474 --
 .../transitiveReasoner/TransitiveEngine.java    |  402 -
 .../TransitiveGraphCache.java                   |  673 --
 .../transitiveReasoner/TransitiveInfGraph.java  |  165 -
 .../transitiveReasoner/TransitiveReasoner.java  |  250 -
 .../TransitiveReasonerFactory.java              |   86 -
 .../reasoner/transitiveReasoner/package.html    |   43 -
 .../hp/hpl/jena/shared/AddDeniedException.java  |   33 -
 .../hpl/jena/shared/AlreadyExistsException.java |   31 -
 .../jena/shared/AlreadyReifiedException.java    |   29 -
 .../jena/shared/AssertionFailureException.java  |   29 -
 .../hp/hpl/jena/shared/BadBooleanException.java |   29 -
 .../jena/shared/BadCharLiteralException.java    |   28 -
 .../jena/shared/BadDescriptionException.java    |   32 -
 .../BadDescriptionMultipleRootsException.java   |   35 -
 .../shared/BadDescriptionNoRootException.java   |   33 -
 .../com/hp/hpl/jena/shared/BadURIException.java |   40 -
 .../com/hp/hpl/jena/shared/BrokenException.java |   34 -
 .../hpl/jena/shared/CannotCreateException.java  |   31 -
 .../shared/CannotEncodeCharacterException.java  |   48 -
 .../hpl/jena/shared/CannotReifyException.java   |   29 -
 .../com/hp/hpl/jena/shared/ClosedException.java |   42 -
 .../java/com/hp/hpl/jena/shared/Command.java    |   31 -
 .../com/hp/hpl/jena/shared/ConfigException.java |   58 -
 .../hpl/jena/shared/DeleteDeniedException.java  |   33 -
 .../hpl/jena/shared/DoesNotExistException.java  |   34 -
 .../shared/InvalidPropertyURIException.java     |   29 -
 .../com/hp/hpl/jena/shared/JenaException.java   |   30 -
 .../main/java/com/hp/hpl/jena/shared/Lock.java  |   97 -
 .../java/com/hp/hpl/jena/shared/LockMRSW.java   |  250 -
 .../java/com/hp/hpl/jena/shared/LockMutex.java  |   37 -
 .../java/com/hp/hpl/jena/shared/LockNone.java   |   32 -
 .../NamespaceEndsWithNameCharException.java     |   30 -
 .../jena/shared/NoReaderForLangException.java   |   28 -
 .../shared/NoReasonerSuppliedException.java     |   28 -
 .../jena/shared/NoSuchReasonerException.java    |   42 -
 .../jena/shared/NoWriterForLangException.java   |   28 -
 .../hp/hpl/jena/shared/NotFoundException.java   |   33 -
 .../com/hp/hpl/jena/shared/PrefixMapping.java   |  229 -
 .../jena/shared/PropertyNotFoundException.java  |   30 -
 .../hp/hpl/jena/shared/RandomOrderGraph.java    |  122 -
 .../jena/shared/RulesetNotFoundException.java   |   36 -
 .../com/hp/hpl/jena/shared/SyntaxError.java     |   28 -
 .../jena/shared/UnknownPropertyException.java   |   29 -
 .../hpl/jena/shared/UpdateDeniedException.java  |   43 -
 .../hp/hpl/jena/shared/WrappedException.java    |   31 -
 .../hp/hpl/jena/shared/WrappedIOException.java  |   33 -
 .../hp/hpl/jena/shared/impl/JenaParameters.java |  115 -
 .../hpl/jena/shared/impl/PrefixMappingImpl.java |  269 -
 .../com/hp/hpl/jena/shared/impl/package.html    |   27 -
 .../java/com/hp/hpl/jena/shared/package.html    |   29 -
 .../java/com/hp/hpl/jena/shared/uuid/Bits.java  |  259 -
 .../com/hp/hpl/jena/shared/uuid/JenaUUID.java   |  252 -
 .../com/hp/hpl/jena/shared/uuid/LibUUID.java    |   76 -
 .../hp/hpl/jena/shared/uuid/UUIDFactory.java    |   26 -
 .../com/hp/hpl/jena/shared/uuid/UUID_V1.java    |  118 -
 .../hp/hpl/jena/shared/uuid/UUID_V1_Gen.java    |  314 -
 .../com/hp/hpl/jena/shared/uuid/UUID_V4.java    |   95 -
 .../hp/hpl/jena/shared/uuid/UUID_V4_Gen.java    |  105 -
 .../com/hp/hpl/jena/shared/uuid/UUID_nil.java   |   68 -
 .../hpl/jena/shared/wg/LazyFileInputStream.java |   46 -
 .../hp/hpl/jena/shared/wg/LazyInputStream.java  |   62 -
 .../hpl/jena/shared/wg/LazyURLInputStream.java  |   50 -
 .../jena/shared/wg/LazyZipEntryInputStream.java |   52 -
 .../jena/shared/wg/TestInputStreamFactory.java  |  192 -
 .../java/com/hp/hpl/jena/shared/wg/package.html |   30 -
 .../java/com/hp/hpl/jena/util/CharEncoding.java |  176 -
 .../com/hp/hpl/jena/util/CollectionFactory.java |   61 -
 .../java/com/hp/hpl/jena/util/FileManager.java  |  534 --
 .../java/com/hp/hpl/jena/util/FileUtils.java    |  429 --
 .../hp/hpl/jena/util/IteratorCollection.java    |   68 -
 .../com/hp/hpl/jena/util/LocationMapper.java    |  399 -
 .../main/java/com/hp/hpl/jena/util/Locator.java |   30 -
 .../hp/hpl/jena/util/LocatorClassLoader.java    |   85 -
 .../java/com/hp/hpl/jena/util/LocatorFile.java  |  150 -
 .../java/com/hp/hpl/jena/util/LocatorURL.java   |  157 -
 .../java/com/hp/hpl/jena/util/LocatorZip.java   |   89 -
 .../java/com/hp/hpl/jena/util/Metadata.java     |   96 -
 .../java/com/hp/hpl/jena/util/MonitorGraph.java |   95 -
 .../java/com/hp/hpl/jena/util/MonitorModel.java |   78 -
 .../java/com/hp/hpl/jena/util/OneToManyMap.java |  533 --
 .../java/com/hp/hpl/jena/util/PrintUtil.java    |  201 -
 .../com/hp/hpl/jena/util/ResourceUtils.java     |  338 -
 .../java/com/hp/hpl/jena/util/SystemUtils.java  |   53 -
 .../java/com/hp/hpl/jena/util/Tokenizer.java    |  172 -
 .../java/com/hp/hpl/jena/util/TypedStream.java  |   49 -
 .../main/java/com/hp/hpl/jena/util/URIref.java  |  170 -
 .../java/com/hp/hpl/jena/util/cache/Cache.java  |   49 -
 .../hp/hpl/jena/util/cache/CacheControl.java    |   70 -
 .../hp/hpl/jena/util/cache/CacheManager.java    |   54 -
 .../hpl/jena/util/cache/EnhancedNodeCache.java  |  120 -
 .../com/hp/hpl/jena/util/cache/RandCache.java   |  162 -
 .../hpl/jena/util/iterator/ArrayIterator.java   |   63 -
 .../jena/util/iterator/ClosableIterator.java    |   47 -
 .../util/iterator/ConcatenatedIterator.java     |  164 -
 .../util/iterator/EarlyBindingIterator.java     |   38 -
 .../jena/util/iterator/ExtendedIterator.java    |   83 -
 .../com/hp/hpl/jena/util/iterator/Filter.java   |   84 -
 .../jena/util/iterator/FilterDropIterator.java  |   34 -
 .../hpl/jena/util/iterator/FilterIterator.java  |   94 -
 .../jena/util/iterator/FilterKeepIterator.java  |   34 -
 .../jena/util/iterator/IteratorIterator.java    |   73 -
 .../jena/util/iterator/LateBindingIterator.java |   75 -
 .../hp/hpl/jena/util/iterator/LazyIterator.java |  104 -
 .../com/hp/hpl/jena/util/iterator/Map1.java     |   30 -
 .../hp/hpl/jena/util/iterator/Map1Iterator.java |   55 -
 .../hp/hpl/jena/util/iterator/MapFilter.java    |   34 -
 .../jena/util/iterator/MapFilterIterator.java   |   94 -
 .../hp/hpl/jena/util/iterator/NiceIterator.java |  220 -
 .../hp/hpl/jena/util/iterator/NullIterator.java |   40 -
 .../jena/util/iterator/RandomOrderIterator.java |   67 -
 .../jena/util/iterator/SingletonIterator.java   |   61 -
 .../util/iterator/UniqueExtendedIterator.java   |   93 -
 .../hp/hpl/jena/util/iterator/UniqueFilter.java |   43 -
 .../hpl/jena/util/iterator/WrappedIterator.java |  116 -
 .../com/hp/hpl/jena/util/iterator/package.html  |   30 -
 .../main/java/com/hp/hpl/jena/util/package.html |   28 -
 .../java/com/hp/hpl/jena/vocabulary/DB.java     |   76 -
 .../java/com/hp/hpl/jena/vocabulary/DC.java     |   27 -
 .../com/hp/hpl/jena/vocabulary/DCTerms.java     |  316 -
 .../com/hp/hpl/jena/vocabulary/DCTypes.java     |   79 -
 .../java/com/hp/hpl/jena/vocabulary/DC_10.java  |   57 -
 .../java/com/hp/hpl/jena/vocabulary/DC_11.java  |   86 -
 .../jena/vocabulary/LocationMappingVocab.java   |   53 -
 .../java/com/hp/hpl/jena/vocabulary/OWL.java    |  148 -
 .../java/com/hp/hpl/jena/vocabulary/OWL2.java   |  195 -
 .../com/hp/hpl/jena/vocabulary/OWLResults.java  |   91 -
 .../com/hp/hpl/jena/vocabulary/OWLTest.java     |  118 -
 .../hpl/jena/vocabulary/OntDocManagerVocab.java |   98 -
 .../hp/hpl/jena/vocabulary/OntEventsVocab.java  |  285 -
 .../java/com/hp/hpl/jena/vocabulary/RDF.java    |   99 -
 .../java/com/hp/hpl/jena/vocabulary/RDFS.java   |   88 -
 .../com/hp/hpl/jena/vocabulary/RDFSyntax.java   |   77 -
 .../com/hp/hpl/jena/vocabulary/RDFTest.java     |  126 -
 .../java/com/hp/hpl/jena/vocabulary/RSS.java    |   48 -
 .../hpl/jena/vocabulary/ReasonerVocabulary.java |  180 -
 .../hp/hpl/jena/vocabulary/TestManifest.java    |   86 -
 .../hp/hpl/jena/vocabulary/TestManifestX.java   |   72 -
 .../java/com/hp/hpl/jena/vocabulary/VCARD.java  |   93 -
 .../java/com/hp/hpl/jena/vocabulary/XSD.java    |  215 -
 .../com/hp/hpl/jena/vocabulary/package.html     |   28 -
 jena-core/src/main/java/jena/InvokingUtil.java  |   66 +
 jena-core/src/main/java/jena/RuleMap.java       |   53 +-
 jena-core/src/main/java/jena/cmdline/Arg.java   |   54 -
 .../src/main/java/jena/cmdline/ArgDecl.java     |  248 -
 .../src/main/java/jena/cmdline/ArgHandler.java  |   29 -
 .../main/java/jena/cmdline/CmdLineUtils.java    |   77 -
 .../src/main/java/jena/cmdline/CommandLine.java |  446 --
 jena-core/src/main/java/jena/qtest.java         |    3 +-
 jena-core/src/main/java/jena/query.java         |    3 +-
 jena-core/src/main/java/jena/rdfcat.java        |  832 ++-
 jena-core/src/main/java/jena/rdfcompare.java    |    8 +-
 jena-core/src/main/java/jena/rdfcopy.java       |   10 +-
 jena-core/src/main/java/jena/rdfparse.java      |    8 +-
 jena-core/src/main/java/jena/rset.java          |    3 +-
 jena-core/src/main/java/jena/schemagen.java     |   65 +-
 jena-core/src/main/java/jena/sparql.java        |    3 +-
 jena-core/src/main/java/jena/turtle.java        |    3 +-
 jena-core/src/main/java/jena/version.java       |    7 +-
 .../src/main/java/org/apache/jena/Jena.java     |   47 +
 .../main/java/org/apache/jena/JenaRuntime.java  |  148 +
 .../org/apache/jena/assembler/Assembler.java    |  108 +
 .../apache/jena/assembler/AssemblerHelp.java    |  321 +
 .../jena/assembler/BadObjectException.java      |   53 +
 .../java/org/apache/jena/assembler/Content.java |   78 +
 .../apache/jena/assembler/ImportManager.java    |  112 +
 .../main/java/org/apache/jena/assembler/JA.java |  197 +
 .../java/org/apache/jena/assembler/Mode.java    |   77 +
 .../apache/jena/assembler/ModelExpansion.java   |  308 +
 .../java/org/apache/jena/assembler/RuleSet.java |   54 +
 .../assembler/assemblers/AssemblerBase.java     |  140 +
 .../assembler/assemblers/AssemblerGroup.java    |  152 +
 .../assembler/assemblers/ContentAssembler.java  |  192 +
 .../assemblers/DefaultModelAssembler.java       |   36 +
 .../assemblers/DocumentManagerAssembler.java    |   56 +
 .../assemblers/FileManagerAssembler.java        |   46 +
 .../assembler/assemblers/InfModelAssembler.java |   56 +
 .../assemblers/LocationMapperAssembler.java     |   37 +
 .../assemblers/MemoryModelAssembler.java        |   41 +
 .../assembler/assemblers/ModelAssembler.java    |  123 +
 .../assemblers/ModelSourceAssembler.java        |   33 +
 .../assemblers/NamedModelAssembler.java         |   31 +
 .../assembler/assemblers/OntModelAssembler.java |   63 +
 .../assemblers/OntModelSpecAssembler.java       |  133 +
 .../assemblers/PrefixMappingAssembler.java      |   61 +
 .../assemblers/ReasonerFactoryAssembler.java    |  195 +
 .../assembler/assemblers/RuleSetAssembler.java  |   75 +
 .../assemblers/UnionModelAssembler.java         |   60 +
 .../AmbiguousSpecificTypeException.java         |   58 +
 .../exceptions/AssemblerException.java          |  121 +
 .../exceptions/CannotConstructException.java    |   76 +
 .../exceptions/CannotHaveRulesException.java    |   36 +
 .../exceptions/CannotLoadClassException.java    |   50 +
 .../exceptions/NoImplementationException.java   |   50 +
 .../exceptions/NoSpecificTypeException.java     |   29 +
 .../exceptions/NotExpectedTypeException.java    |   44 +
 .../exceptions/NotUniqueException.java          |   43 +
 .../exceptions/PropertyRequiredException.java   |   49 +
 .../exceptions/ReasonerClashException.java      |   31 +
 .../exceptions/TransactionAbortedException.java |   39 +
 .../exceptions/UnknownEncodingException.java    |   49 +
 .../exceptions/UnknownReasonerException.java    |   42 +
 .../org/apache/jena/datatypes/BaseDatatype.java |  231 +
 .../jena/datatypes/DatatypeFormatException.java |   60 +
 .../org/apache/jena/datatypes/RDFDatatype.java  |  120 +
 .../org/apache/jena/datatypes/TypeMapper.java   |  189 +
 .../java/org/apache/jena/datatypes/package.html |   31 +
 .../jena/datatypes/xsd/AbstractDateTime.java    |  400 +
 .../xsd/IllegalDateTimeFieldException.java      |   34 +
 .../apache/jena/datatypes/xsd/XSDDatatype.java  |  651 ++
 .../apache/jena/datatypes/xsd/XSDDateTime.java  |  320 +
 .../apache/jena/datatypes/xsd/XSDDuration.java  |  326 +
 .../jena/datatypes/xsd/XSDbase64Binary.java     |   46 +
 .../apache/jena/datatypes/xsd/XSDbinary.java    |   66 +
 .../apache/jena/datatypes/xsd/XSDhexBinary.java |   46 +
 .../jena/datatypes/xsd/impl/RDFLangString.java  |   66 +
 .../jena/datatypes/xsd/impl/XMLLiteralType.java |  153 +
 .../xsd/impl/XSDAbstractDateTimeType.java       |  471 ++
 .../datatypes/xsd/impl/XSDBaseNumericType.java  |  196 +
 .../datatypes/xsd/impl/XSDBaseStringType.java   |   69 +
 .../jena/datatypes/xsd/impl/XSDByteType.java    |   46 +
 .../xsd/impl/XSDDateTimeStampType.java          |   57 +
 .../datatypes/xsd/impl/XSDDateTimeType.java     |   60 +
 .../jena/datatypes/xsd/impl/XSDDateType.java    |   58 +
 .../xsd/impl/XSDDayTimeDurationType.java        |   60 +
 .../jena/datatypes/xsd/impl/XSDDayType.java     |   69 +
 .../jena/datatypes/xsd/impl/XSDDouble.java      |  125 +
 .../datatypes/xsd/impl/XSDDurationType.java     |  139 +
 .../jena/datatypes/xsd/impl/XSDFloat.java       |  125 +
 .../datatypes/xsd/impl/XSDMonthDayType.java     |   71 +
 .../jena/datatypes/xsd/impl/XSDMonthType.java   |   73 +
 .../jena/datatypes/xsd/impl/XSDPlainType.java   |   56 +
 .../jena/datatypes/xsd/impl/XSDTimeType.java    |   76 +
 .../xsd/impl/XSDYearMonthDurationType.java      |   37 +
 .../datatypes/xsd/impl/XSDYearMonthType.java    |   60 +
 .../jena/datatypes/xsd/impl/XSDYearType.java    |   73 +
 .../apache/jena/datatypes/xsd/impl/package.html |   30 +
 .../org/apache/jena/datatypes/xsd/package.html  |   35 +
 .../enhanced/AlreadyLinkedViewException.java    |   35 +
 .../jena/enhanced/BuiltinPersonalities.java     |   98 +
 .../java/org/apache/jena/enhanced/EnhGraph.java |  180 +
 .../java/org/apache/jena/enhanced/EnhNode.java  |  181 +
 .../apache/jena/enhanced/GraphPersonality.java  |   28 +
 .../apache/jena/enhanced/Implementation.java    |   48 +
 .../apache/jena/enhanced/NodePersonality.java   |   27 +
 .../org/apache/jena/enhanced/Personality.java   |  101 +
 .../enhanced/PersonalityConfigException.java    |   42 +
 .../org/apache/jena/enhanced/Polymorphic.java   |  140 +
 .../UnsupportedPolymorphismException.java       |   62 +
 .../java/org/apache/jena/enhanced/package.html  |   27 +
 .../org/apache/jena/graph/Capabilities.java     |   79 +
 .../java/org/apache/jena/graph/Factory.java     |   67 +
 .../java/org/apache/jena/graph/FrontsNode.java  |   33 +
 .../org/apache/jena/graph/FrontsTriple.java     |   28 +
 .../java/org/apache/jena/graph/GetTriple.java   |   37 +
 .../main/java/org/apache/jena/graph/Graph.java  |  161 +
 .../apache/jena/graph/GraphEventManager.java    |   81 +
 .../java/org/apache/jena/graph/GraphEvents.java |  103 +
 .../org/apache/jena/graph/GraphExtract.java     |   91 +
 .../org/apache/jena/graph/GraphListener.java    |  124 +
 .../java/org/apache/jena/graph/GraphMaker.java  |  122 +
 .../jena/graph/GraphStatisticsHandler.java      |   34 +
 .../java/org/apache/jena/graph/GraphUtil.java   |  265 +
 .../main/java/org/apache/jena/graph/Node.java   |  281 +
 .../java/org/apache/jena/graph/NodeFactory.java |  170 +
 .../java/org/apache/jena/graph/NodeVisitor.java |   35 +
 .../java/org/apache/jena/graph/Node_ANY.java    |   55 +
 .../java/org/apache/jena/graph/Node_Blank.java  |   46 +
 .../org/apache/jena/graph/Node_Concrete.java    |   33 +
 .../java/org/apache/jena/graph/Node_Fluid.java  |   33 +
 .../org/apache/jena/graph/Node_Literal.java     |  108 +
 .../java/org/apache/jena/graph/Node_NULL.java   |   49 +
 .../java/org/apache/jena/graph/Node_URI.java    |   83 +
 .../org/apache/jena/graph/Node_Variable.java    |   91 +
 .../apache/jena/graph/TransactionHandler.java   |   62 +
 .../main/java/org/apache/jena/graph/Triple.java |  222 +
 .../org/apache/jena/graph/TripleBoundary.java   |   47 +
 .../org/apache/jena/graph/TripleIterator.java   |   33 +
 .../jena/graph/compose/CompositionBase.java     |  161 +
 .../org/apache/jena/graph/compose/Delta.java    |  112 +
 .../apache/jena/graph/compose/Difference.java   |   55 +
 .../jena/graph/compose/DisjointUnion.java       |   48 +
 .../org/apache/jena/graph/compose/Dyadic.java   |   96 +
 .../apache/jena/graph/compose/Intersection.java |   56 +
 .../apache/jena/graph/compose/MultiUnion.java   |  221 +
 .../org/apache/jena/graph/compose/Polyadic.java |  272 +
 .../compose/PolyadicPrefixMappingImpl.java      |  206 +
 .../org/apache/jena/graph/compose/Union.java    |   68 +
 .../org/apache/jena/graph/compose/package.html  |   27 +
 .../apache/jena/graph/impl/AdhocDatatype.java   |   46 +
 .../apache/jena/graph/impl/AllCapabilities.java |   48 +
 .../apache/jena/graph/impl/BaseGraphMaker.java  |   79 +
 .../apache/jena/graph/impl/CollectionGraph.java |  172 +
 .../org/apache/jena/graph/impl/GraphBase.java   |  398 +
 .../apache/jena/graph/impl/GraphMatcher.java    |  961 +++
 .../jena/graph/impl/GraphWithPerform.java       |   40 +
 .../apache/jena/graph/impl/LiteralLabel.java    |  112 +
 .../jena/graph/impl/LiteralLabelFactory.java    |  113 +
 .../jena/graph/impl/LiteralLabelImpl.java       |  494 ++
 .../jena/graph/impl/SimpleEventManager.java     |  187 +
 .../jena/graph/impl/SimpleGraphMaker.java       |  114 +
 .../graph/impl/SimpleTransactionHandler.java    |   45 +
 .../jena/graph/impl/TransactionHandlerBase.java |   47 +
 .../org/apache/jena/graph/impl/TripleStore.java |   84 +
 .../apache/jena/graph/impl/WrappedGraph.java    |  134 +
 .../org/apache/jena/graph/impl/package.html     |   29 +
 .../java/org/apache/jena/graph/package.html     |   27 +
 .../java/org/apache/jena/mem/ArrayBunch.java    |  145 +
 .../main/java/org/apache/jena/mem/BunchMap.java |   63 +
 .../main/java/org/apache/jena/mem/GraphMem.java |  164 +
 .../java/org/apache/jena/mem/GraphMemBase.java  |   94 +
 .../org/apache/jena/mem/GraphTripleStore.java   |   42 +
 .../apache/jena/mem/GraphTripleStoreBase.java   |  169 +
 .../apache/jena/mem/GraphTripleStoreMem.java    |   45 +
 .../java/org/apache/jena/mem/HashCommon.java    |  378 +
 .../org/apache/jena/mem/HashedBunchMap.java     |  113 +
 .../org/apache/jena/mem/HashedTripleBunch.java  |  108 +
 .../org/apache/jena/mem/NodeToTriplesMap.java   |  138 +
 .../apache/jena/mem/NodeToTriplesMapBase.java   |  144 +
 .../apache/jena/mem/NodeToTriplesMapMem.java    |  142 +
 .../org/apache/jena/mem/ObjectIterator.java     |   79 +
 .../main/java/org/apache/jena/mem/SetBunch.java |   88 +
 .../apache/jena/mem/StoreTripleIterator.java    |   62 +
 .../apache/jena/mem/TrackingTripleIterator.java |   48 +
 .../java/org/apache/jena/mem/TripleBunch.java   |   76 +
 .../org/apache/jena/mem/WrappedHashMap.java     |   56 +
 .../main/java/org/apache/jena/mem/package.html  |   27 +
 .../java/org/apache/jena/n3/IRIResolver.java    |  231 +
 .../java/org/apache/jena/n3/JenaReaderBase.java |  136 +
 .../org/apache/jena/n3/JenaURIException.java    |   28 +
 .../org/apache/jena/n3/N3IndentedWriter.java    |   92 +
 .../java/org/apache/jena/n3/N3JenaWriter.java   |  190 +
 .../org/apache/jena/n3/N3JenaWriterCommon.java  |  967 +++
 .../java/org/apache/jena/n3/N3JenaWriterPP.java |  633 ++
 .../org/apache/jena/n3/N3JenaWriterPlain.java   |   29 +
 .../org/apache/jena/n3/N3JenaWriterTriples.java |   64 +
 .../org/apache/jena/n3/N3TurtleJenaWriter.java  |   40 +
 .../apache/jena/n3/RelativeURIException.java    |   24 +
 .../main/java/org/apache/jena/n3/package.html   |   97 +
 .../apache/jena/n3/turtle/LabelToNodeMap.java   |   56 +
 .../org/apache/jena/n3/turtle/ParserBase.java   |  453 ++
 .../org/apache/jena/n3/turtle/ParserTurtle.java |   63 +
 .../apache/jena/n3/turtle/Turtle2NTriples.java  |  170 +
 .../apache/jena/n3/turtle/TurtleEventDump.java  |   58 +
 .../jena/n3/turtle/TurtleEventHandler.java      |   30 +
 .../apache/jena/n3/turtle/TurtleEventNull.java  |   33 +
 .../jena/n3/turtle/TurtleParseException.java    |   34 +
 .../jena/n3/turtle/TurtleRDFGraphInserter.java  |   60 +
 .../org/apache/jena/n3/turtle/TurtleReader.java |   35 +
 .../jena/n3/turtle/parser/JavaCharStream.java   |  635 ++
 .../jena/n3/turtle/parser/ParseException.java   |  209 +
 .../org/apache/jena/n3/turtle/parser/Token.java |  149 +
 .../jena/n3/turtle/parser/TokenMgrError.java    |  165 +
 .../jena/n3/turtle/parser/TurtleParser.java     |  926 +++
 .../n3/turtle/parser/TurtleParserConstants.java |  231 +
 .../turtle/parser/TurtleParserTokenManager.java | 1457 ++++
 .../org/apache/jena/ontology/AllDifferent.java  |  108 +
 .../jena/ontology/AllValuesFromRestriction.java |   84 +
 .../jena/ontology/AnnotationProperty.java       |   50 +
 .../jena/ontology/BooleanClassDescription.java  |  112 +
 .../jena/ontology/CardinalityQRestriction.java  |   80 +
 .../jena/ontology/CardinalityRestriction.java   |   79 +
 .../apache/jena/ontology/ComplementClass.java   |   59 +
 .../jena/ontology/ConversionException.java      |   71 +
 .../org/apache/jena/ontology/DataRange.java     |  107 +
 .../apache/jena/ontology/DatatypeProperty.java  |   47 +
 .../apache/jena/ontology/EnumeratedClass.java   |  107 +
 .../jena/ontology/FunctionalProperty.java       |   48 +
 .../jena/ontology/HasValueRestriction.java      |   82 +
 .../org/apache/jena/ontology/Individual.java    |  189 +
 .../apache/jena/ontology/IntersectionClass.java |   48 +
 .../ontology/InverseFunctionalProperty.java     |   53 +
 .../ontology/LanguageConsistencyException.java  |   65 +
 .../ontology/MaxCardinalityQRestriction.java    |   80 +
 .../ontology/MaxCardinalityRestriction.java     |   80 +
 .../ontology/MinCardinalityQRestriction.java    |   80 +
 .../ontology/MinCardinalityRestriction.java     |   79 +
 .../apache/jena/ontology/ObjectProperty.java    |   47 +
 .../java/org/apache/jena/ontology/OntClass.java |  595 ++
 .../jena/ontology/OntDocumentManager.java       | 1176 +++
 .../java/org/apache/jena/ontology/OntModel.java | 1719 +++++
 .../org/apache/jena/ontology/OntModelSpec.java  |  466 ++
 .../org/apache/jena/ontology/OntProperty.java   |  601 ++
 .../org/apache/jena/ontology/OntResource.java   |  788 ++
 .../java/org/apache/jena/ontology/OntTools.java |  616 ++
 .../java/org/apache/jena/ontology/Ontology.java |  248 +
 .../apache/jena/ontology/OntologyException.java |   69 +
 .../java/org/apache/jena/ontology/Profile.java  |  767 ++
 .../apache/jena/ontology/ProfileException.java  |   69 +
 .../apache/jena/ontology/ProfileRegistry.java   |  141 +
 .../jena/ontology/QualifiedRestriction.java     |   95 +
 .../org/apache/jena/ontology/Restriction.java   |  237 +
 .../ontology/SomeValuesFromRestriction.java     |   84 +
 .../apache/jena/ontology/SymmetricProperty.java |   46 +
 .../jena/ontology/TransitiveProperty.java       |   47 +
 .../org/apache/jena/ontology/UnionClass.java    |   48 +
 .../jena/ontology/impl/AbstractProfile.java     |  156 +
 .../jena/ontology/impl/AllDifferentImpl.java    |  184 +
 .../impl/AllValuesFromRestrictionImpl.java      |  176 +
 .../ontology/impl/AnnotationPropertyImpl.java   |  124 +
 .../impl/BooleanClassDescriptionImpl.java       |  173 +
 .../impl/CardinalityQRestrictionImpl.java       |  153 +
 .../impl/CardinalityRestrictionImpl.java        |  149 +
 .../jena/ontology/impl/ComplementClassImpl.java |  222 +
 .../jena/ontology/impl/DataRangeImpl.java       |  190 +
 .../ontology/impl/DatatypePropertyImpl.java     |  103 +
 .../jena/ontology/impl/EnumeratedClassImpl.java |  189 +
 .../ontology/impl/FunctionalPropertyImpl.java   |  103 +
 .../ontology/impl/HasValueRestrictionImpl.java  |  162 +
 .../jena/ontology/impl/IndividualImpl.java      |  273 +
 .../ontology/impl/IntersectionClassImpl.java    |  110 +
 .../impl/InverseFunctionalPropertyImpl.java     |  103 +
 .../impl/MaxCardinalityQRestrictionImpl.java    |  155 +
 .../impl/MaxCardinalityRestrictionImpl.java     |  149 +
 .../impl/MinCardinalityQRestrictionImpl.java    |  154 +
 .../impl/MinCardinalityRestrictionImpl.java     |  150 +
 .../apache/jena/ontology/impl/OWLDLProfile.java |  302 +
 .../jena/ontology/impl/OWLLiteProfile.java      |  305 +
 .../apache/jena/ontology/impl/OWLProfile.java   |  573 ++
 .../jena/ontology/impl/ObjectPropertyImpl.java  |  146 +
 .../apache/jena/ontology/impl/OntClassImpl.java | 1113 +++
 .../apache/jena/ontology/impl/OntModelImpl.java | 3173 ++++++++
 .../jena/ontology/impl/OntPropertyImpl.java     |  917 +++
 .../jena/ontology/impl/OntResourceImpl.java     | 1668 +++++
 .../apache/jena/ontology/impl/OntologyImpl.java |  380 +
 .../ontology/impl/QualifiedRestrictionImpl.java |  190 +
 .../apache/jena/ontology/impl/RDFSProfile.java  |  342 +
 .../jena/ontology/impl/RestrictionImpl.java     |  370 +
 .../impl/SomeValuesFromRestrictionImpl.java     |  176 +
 .../ontology/impl/SymmetricPropertyImpl.java    |  103 +
 .../ontology/impl/TransitivePropertyImpl.java   |  103 +
 .../jena/ontology/impl/UnionClassImpl.java      |  113 +
 .../org/apache/jena/ontology/impl/package.html  |   29 +
 .../java/org/apache/jena/ontology/package.html  |   38 +
 .../jena/rdf/listeners/ChangedListener.java     |   67 +
 .../apache/jena/rdf/listeners/NullListener.java |   53 +
 .../jena/rdf/listeners/ObjectListener.java      |   64 +
 .../jena/rdf/listeners/StatementListener.java   |   90 +
 .../org/apache/jena/rdf/listeners/package.html  |   33 +
 .../java/org/apache/jena/rdf/model/Alt.java     |  223 +
 .../rdf/model/AltHasNoDefaultException.java     |   30 +
 .../java/org/apache/jena/rdf/model/AnonId.java  |  117 +
 .../java/org/apache/jena/rdf/model/Bag.java     |   61 +
 .../org/apache/jena/rdf/model/Container.java    |  246 +
 .../jena/rdf/model/DoesNotReifyException.java   |   33 +
 .../jena/rdf/model/EmptyListException.java      |   85 +
 .../rdf/model/EmptyListUpdateException.java     |   75 +
 .../jena/rdf/model/HasNoModelException.java     |   31 +
 .../org/apache/jena/rdf/model/InfModel.java     |  145 +
 .../jena/rdf/model/InvalidListException.java    |   84 +
 .../jena/rdf/model/ListIndexException.java      |   84 +
 .../java/org/apache/jena/rdf/model/Literal.java |  217 +
 .../rdf/model/LiteralRequiredException.java     |   35 +
 .../java/org/apache/jena/rdf/model/Model.java   | 1019 +++
 .../jena/rdf/model/ModelChangedListener.java    |  111 +
 .../org/apache/jena/rdf/model/ModelCon.java     |  805 ++
 .../org/apache/jena/rdf/model/ModelExtract.java |   64 +
 .../org/apache/jena/rdf/model/ModelFactory.java |  305 +
 .../apache/jena/rdf/model/ModelFactoryBase.java |   44 +
 .../org/apache/jena/rdf/model/ModelGetter.java  |   46 +
 .../jena/rdf/model/ModelGraphInterface.java     |   51 +
 .../org/apache/jena/rdf/model/ModelMaker.java   |  113 +
 .../org/apache/jena/rdf/model/ModelReader.java  |   31 +
 .../org/apache/jena/rdf/model/ModelSource.java  |   78 +
 .../org/apache/jena/rdf/model/NodeIterator.java |   71 +
 .../org/apache/jena/rdf/model/NsIterator.java   |   40 +
 .../org/apache/jena/rdf/model/Property.java     |   58 +
 .../apache/jena/rdf/model/RDFErrorHandler.java  |   37 +
 .../java/org/apache/jena/rdf/model/RDFList.java |  546 ++
 .../java/org/apache/jena/rdf/model/RDFNode.java |  124 +
 .../org/apache/jena/rdf/model/RDFReader.java    |   94 +
 .../org/apache/jena/rdf/model/RDFReaderF.java   |   82 +
 .../org/apache/jena/rdf/model/RDFVisitor.java   |   48 +
 .../org/apache/jena/rdf/model/RDFWriter.java    |   90 +
 .../org/apache/jena/rdf/model/RDFWriterF.java   |   76 +
 .../org/apache/jena/rdf/model/RSIterator.java   |   32 +
 .../apache/jena/rdf/model/ReifiedStatement.java |   32 +
 .../org/apache/jena/rdf/model/ResIterator.java  |   34 +
 .../org/apache/jena/rdf/model/Resource.java     |  364 +
 .../org/apache/jena/rdf/model/ResourceF.java    |   36 +
 .../apache/jena/rdf/model/ResourceFactory.java  |  313 +
 .../rdf/model/ResourceRequiredException.java    |   35 +
 .../org/apache/jena/rdf/model/Selector.java     |   60 +
 .../java/org/apache/jena/rdf/model/Seq.java     |  517 ++
 .../jena/rdf/model/SeqIndexBoundsException.java |   30 +
 .../apache/jena/rdf/model/SimpleSelector.java   |  287 +
 .../org/apache/jena/rdf/model/Statement.java    |  392 +
 .../jena/rdf/model/StatementBoundary.java       |   39 +
 .../jena/rdf/model/StatementBoundaryBase.java   |   63 +
 .../jena/rdf/model/StatementTripleBoundary.java |   51 +
 .../org/apache/jena/rdf/model/StmtIterator.java |   44 +
 .../org/apache/jena/rdf/model/impl/AltImpl.java |  206 +
 .../org/apache/jena/rdf/model/impl/BagImpl.java |   58 +
 .../model/impl/ContNodeIteratorFactoryImpl.java |   33 +
 .../rdf/model/impl/ContNodeIteratorImpl.java    |   78 +
 .../apache/jena/rdf/model/impl/ContainerI.java  |   33 +
 .../jena/rdf/model/impl/ContainerImpl.java      |  256 +
 .../org/apache/jena/rdf/model/impl/IO_Ctl.java  |   71 +
 .../jena/rdf/model/impl/InfModelImpl.java       |  180 +
 .../jena/rdf/model/impl/IteratorFactory.java    |   72 +
 .../apache/jena/rdf/model/impl/LiteralImpl.java |  311 +
 .../jena/rdf/model/impl/MemoryModelGetter.java  |   43 +
 .../apache/jena/rdf/model/impl/ModelCom.java    | 1578 ++++
 .../rdf/model/impl/ModelListenerAdapter.java    |  101 +
 .../jena/rdf/model/impl/ModelMakerImpl.java     |  106 +
 .../jena/rdf/model/impl/ModelReifier.java       |  169 +
 .../jena/rdf/model/impl/NTripleReader.java      |  493 ++
 .../jena/rdf/model/impl/NTripleWriter.java      |  230 +
 .../rdf/model/impl/NodeIteratorFactory.java     |   31 +
 .../jena/rdf/model/impl/NodeIteratorImpl.java   |   40 +
 .../jena/rdf/model/impl/NsIteratorImpl.java     |   37 +
 .../jena/rdf/model/impl/PropertyImpl.java       |  154 +
 .../rdf/model/impl/RDFDefaultErrorHandler.java  |   64 +
 .../apache/jena/rdf/model/impl/RDFListImpl.java | 1238 ++++
 .../jena/rdf/model/impl/RDFReaderFImpl.java     |  151 +
 .../jena/rdf/model/impl/RDFWriterFImpl.java     |  157 +
 .../jena/rdf/model/impl/RSIteratorImpl.java     |   34 +
 .../rdf/model/impl/ReifiedStatementImpl.java    |  149 +
 .../apache/jena/rdf/model/impl/ReifierStd.java  |  269 +
 .../jena/rdf/model/impl/ResIteratorImpl.java    |   44 +
 .../jena/rdf/model/impl/ResourceImpl.java       |  393 +
 .../jena/rdf/model/impl/SelectorImpl.java       |  211 +
 .../org/apache/jena/rdf/model/impl/SeqImpl.java |  379 +
 .../model/impl/SeqNodeIteratorFactoryImpl.java  |   33 +
 .../rdf/model/impl/SeqNodeIteratorImpl.java     |   68 +
 .../jena/rdf/model/impl/StatementBase.java      |  177 +
 .../jena/rdf/model/impl/StatementImpl.java      |  226 +
 .../jena/rdf/model/impl/StmtIteratorImpl.java   |   53 +
 .../org/apache/jena/rdf/model/impl/Util.java    |  240 +
 .../org/apache/jena/rdf/model/impl/package.html |   29 +
 .../java/org/apache/jena/rdf/model/package.html |   27 +
 .../apache/jena/rdfxml/xmlinput/ALiteral.java   |   64 +
 .../org/apache/jena/rdfxml/xmlinput/ARP.java    |  235 +
 .../apache/jena/rdfxml/xmlinput/ARPConfig.java  |   84 +
 .../jena/rdfxml/xmlinput/ARPErrorNumbers.java   |  538 ++
 .../jena/rdfxml/xmlinput/ARPEventHandler.java   |   36 +
 .../jena/rdfxml/xmlinput/ARPHandlers.java       |  186 +
 .../apache/jena/rdfxml/xmlinput/ARPOptions.java |  258 +
 .../apache/jena/rdfxml/xmlinput/AResource.java  |   65 +
 .../apache/jena/rdfxml/xmlinput/DOM2Model.java  |  119 +
 .../jena/rdfxml/xmlinput/ExtendedHandler.java   |  112 +
 .../xmlinput/FatalParsingErrorException.java    |   35 +
 .../jena/rdfxml/xmlinput/JenaHandler.java       |  104 +
 .../apache/jena/rdfxml/xmlinput/JenaReader.java |  556 ++
 .../apache/jena/rdfxml/xmlinput/NTriple.java    |  656 ++
 .../jena/rdfxml/xmlinput/NamespaceHandler.java  |   50 +
 .../jena/rdfxml/xmlinput/ParseException.java    |  208 +
 .../apache/jena/rdfxml/xmlinput/SAX2Model.java  |  274 +
 .../apache/jena/rdfxml/xmlinput/SAX2RDF.java    |  186 +
 .../apache/jena/rdfxml/xmlinput/StAX2Model.java |   59 +
 .../apache/jena/rdfxml/xmlinput/StAX2SAX.java   |  202 +
 .../jena/rdfxml/xmlinput/StatementHandler.java  |   47 +
 .../apache/jena/rdfxml/xmlinput/impl/ANode.java |   23 +
 .../xmlinput/impl/ARPDatatypeLiteral.java       |   75 +
 .../jena/rdfxml/xmlinput/impl/ARPLocation.java  |   69 +
 .../jena/rdfxml/xmlinput/impl/ARPResource.java  |  146 +
 .../xmlinput/impl/ARPSaxErrorHandler.java       |   57 +
 .../jena/rdfxml/xmlinput/impl/ARPString.java    |   97 +
 .../rdfxml/xmlinput/impl/AResourceInternal.java |   42 +
 .../rdfxml/xmlinput/impl/AbsXMLContext.java     |  186 +
 .../rdfxml/xmlinput/impl/AttributeLexer.java    |  240 +
 .../rdfxml/xmlinput/impl/CharacterModel.java    |  300 +
 .../xmlinput/impl/DefaultErrorHandler.java      |   56 +
 .../jena/rdfxml/xmlinput/impl/ElementLexer.java |   91 +
 .../xmlinput/impl/LexicalHandlerImpl.java       |   80 +
 .../apache/jena/rdfxml/xmlinput/impl/Names.java |   81 +
 .../rdfxml/xmlinput/impl/ParserSupport.java     |  237 +
 .../jena/rdfxml/xmlinput/impl/QNameLexer.java   |  230 +
 .../jena/rdfxml/xmlinput/impl/RDFXMLParser.java |  219 +
 .../jena/rdfxml/xmlinput/impl/SAX2RDFImpl.java  |  299 +
 .../apache/jena/rdfxml/xmlinput/impl/Taint.java |   28 +
 .../jena/rdfxml/xmlinput/impl/TaintImpl.java    |   39 +
 .../jena/rdfxml/xmlinput/impl/URIReference.java |  188 +
 .../xmlinput/impl/UntaintableURIReference.java  |   30 +
 .../rdfxml/xmlinput/impl/WrappedException.java  |   76 +
 .../xmlinput/impl/XMLBaselessContext.java       |  112 +
 .../jena/rdfxml/xmlinput/impl/XMLContext.java   |  122 +
 .../jena/rdfxml/xmlinput/impl/XMLHandler.java   |  545 ++
 .../apache/jena/rdfxml/xmlinput/package.html    |   57 +
 .../AbsWantLiteralValueOrDescription.java       |   99 +
 .../rdfxml/xmlinput/states/AbsXMLLiteral.java   |  255 +
 .../jena/rdfxml/xmlinput/states/Collection.java |   92 +
 .../jena/rdfxml/xmlinput/states/Frame.java      |  172 +
 .../jena/rdfxml/xmlinput/states/FrameI.java     |   45 +
 .../xmlinput/states/HasSubjectFrameI.java       |   34 +
 .../rdfxml/xmlinput/states/InnerXMLLiteral.java |   40 +
 .../rdfxml/xmlinput/states/LookingForRDF.java   |   54 +
 .../rdfxml/xmlinput/states/OuterXMLLiteral.java |   53 +
 .../rdfxml/xmlinput/states/RDFCollection.java   |   42 +
 .../states/StartStateRDForDescription.java      |   55 +
 .../rdfxml/xmlinput/states/WantDescription.java |  125 +
 .../jena/rdfxml/xmlinput/states/WantEmpty.java  |   43 +
 .../states/WantLiteralValueOrDescription.java   |   91 +
 .../xmlinput/states/WantPropertyElement.java    |  436 ++
 .../states/WantTopLevelDescription.java         |   54 +
 .../xmlinput/states/WantTypedLiteral.java       |   59 +
 .../xmlinput/states/WantsObjectFrameI.java      |   22 +
 .../rdfxml/xmlinput/states/WantsObjectI.java    |   25 +
 .../jena/rdfxml/xmloutput/RDFXMLWriterI.java    |  226 +
 .../jena/rdfxml/xmloutput/impl/Abbreviated.java |  161 +
 .../rdfxml/xmloutput/impl/BaseXMLWriter.java    |  906 +++
 .../jena/rdfxml/xmloutput/impl/Basic.java       |  177 +
 .../jena/rdfxml/xmloutput/impl/PairEntry.java   |   53 +
 .../jena/rdfxml/xmloutput/impl/Relation.java    |  249 +
 .../rdfxml/xmloutput/impl/SimpleLogger.java     |   25 +
 .../jena/rdfxml/xmloutput/impl/Unparser.java    | 1726 +++++
 .../apache/jena/rdfxml/xmloutput/package.html   |   27 +
 .../org/apache/jena/reasoner/BaseInfGraph.java  |  532 ++
 .../org/apache/jena/reasoner/Derivation.java    |   47 +
 .../java/org/apache/jena/reasoner/FGraph.java   |   89 +
 .../java/org/apache/jena/reasoner/Finder.java   |   56 +
 .../org/apache/jena/reasoner/FinderUtil.java    |  129 +
 .../reasoner/IllegalParameterException.java     |   35 +
 .../java/org/apache/jena/reasoner/InfGraph.java |  154 +
 .../java/org/apache/jena/reasoner/Reasoner.java |  145 +
 .../apache/jena/reasoner/ReasonerException.java |   48 +
 .../apache/jena/reasoner/ReasonerFactory.java   |   50 +
 .../apache/jena/reasoner/ReasonerRegistry.java  |  254 +
 .../jena/reasoner/StandardValidityReport.java   |  112 +
 .../org/apache/jena/reasoner/TriplePattern.java |  340 +
 .../apache/jena/reasoner/ValidityReport.java    |  132 +
 .../java/org/apache/jena/reasoner/package.html  |   83 +
 .../reasoner/rulesys/BackwardRuleInfGraphI.java |   68 +
 .../rulesys/BasicForwardRuleInfGraph.java       |  519 ++
 .../rulesys/BasicForwardRuleReasoner.java       |  227 +
 .../reasoner/rulesys/BindingEnvironment.java    |   57 +
 .../apache/jena/reasoner/rulesys/Builtin.java   |   92 +
 .../jena/reasoner/rulesys/BuiltinException.java |   39 +
 .../jena/reasoner/rulesys/BuiltinRegistry.java  |  147 +
 .../jena/reasoner/rulesys/ClauseEntry.java      |   33 +
 .../jena/reasoner/rulesys/FBRuleInfGraph.java   |  986 +++
 .../jena/reasoner/rulesys/FBRuleReasoner.java   |  420 ++
 .../reasoner/rulesys/ForwardRuleInfGraphI.java  |   90 +
 .../apache/jena/reasoner/rulesys/Functor.java   |  297 +
 .../reasoner/rulesys/GenericRuleReasoner.java   |  441 ++
 .../rulesys/GenericRuleReasonerFactory.java     |   84 +
 .../rulesys/LPBackwardRuleInfGraph.java         |  371 +
 .../rulesys/LPBackwardRuleReasoner.java         |  232 +
 .../reasoner/rulesys/Node_RuleVariable.java     |  195 +
 .../reasoner/rulesys/OWLFBRuleReasoner.java     |  149 +
 .../rulesys/OWLFBRuleReasonerFactory.java       |  129 +
 .../jena/reasoner/rulesys/OWLMicroReasoner.java |   98 +
 .../rulesys/OWLMicroReasonerFactory.java        |  126 +
 .../jena/reasoner/rulesys/OWLMiniReasoner.java  |   93 +
 .../rulesys/OWLMiniReasonerFactory.java         |  127 +
 .../reasoner/rulesys/RDFSFBRuleReasoner.java    |   66 +
 .../rulesys/RDFSFBRuleReasonerFactory.java      |   88 +
 .../rulesys/RDFSForwardRuleReasoner.java        |   73 +
 .../jena/reasoner/rulesys/RDFSRuleInfGraph.java |   69 +
 .../jena/reasoner/rulesys/RDFSRuleReasoner.java |  221 +
 .../rulesys/RDFSRuleReasonerFactory.java        |   87 +
 .../jena/reasoner/rulesys/RETERuleInfGraph.java |  111 +
 .../org/apache/jena/reasoner/rulesys/Rule.java  | 1122 +++
 .../jena/reasoner/rulesys/RuleContext.java      |   88 +
 .../jena/reasoner/rulesys/RuleDerivation.java   |  170 +
 .../reasoner/rulesys/RulePreprocessHook.java    |   54 +
 .../jena/reasoner/rulesys/RuleReasoner.java     |   42 +
 .../reasoner/rulesys/RuleReasonerFactory.java   |   31 +
 .../jena/reasoner/rulesys/SilentAddI.java       |   35 +
 .../org/apache/jena/reasoner/rulesys/Util.java  |  373 +
 .../jena/reasoner/rulesys/builtins/AddOne.java  |   73 +
 .../rulesys/builtins/AssertDisjointPairs.java   |   74 +
 .../reasoner/rulesys/builtins/BaseBuiltin.java  |  118 +
 .../jena/reasoner/rulesys/builtins/Bound.java   |   56 +
 .../rulesys/builtins/CountLiteralValues.java    |   86 +
 .../reasoner/rulesys/builtins/Difference.java   |   84 +
 .../jena/reasoner/rulesys/builtins/Drop.java    |   90 +
 .../jena/reasoner/rulesys/builtins/Equal.java   |   68 +
 .../jena/reasoner/rulesys/builtins/GE.java      |   66 +
 .../reasoner/rulesys/builtins/GreaterThan.java  |   67 +
 .../jena/reasoner/rulesys/builtins/Hide.java    |   84 +
 .../jena/reasoner/rulesys/builtins/IsBNode.java |   62 +
 .../jena/reasoner/rulesys/builtins/IsDType.java |   90 +
 .../reasoner/rulesys/builtins/IsFunctor.java    |   63 +
 .../reasoner/rulesys/builtins/IsLiteral.java    |   72 +
 .../jena/reasoner/rulesys/builtins/LE.java      |   66 +
 .../reasoner/rulesys/builtins/LessThan.java     |   67 +
 .../reasoner/rulesys/builtins/ListContains.java |   84 +
 .../reasoner/rulesys/builtins/ListEntry.java    |   96 +
 .../reasoner/rulesys/builtins/ListEqual.java    |   94 +
 .../reasoner/rulesys/builtins/ListLength.java   |   94 +
 .../rulesys/builtins/ListMapAsObject.java       |   74 +
 .../rulesys/builtins/ListMapAsSubject.java      |   73 +
 .../rulesys/builtins/ListNotContains.java       |   64 +
 .../reasoner/rulesys/builtins/ListNotEqual.java |   63 +
 .../reasoner/rulesys/builtins/MakeInstance.java |   76 +
 .../reasoner/rulesys/builtins/MakeSkolem.java   |   88 +
 .../reasoner/rulesys/builtins/MakeTemp.java     |   70 +
 .../jena/reasoner/rulesys/builtins/Max.java     |   82 +
 .../jena/reasoner/rulesys/builtins/Min.java     |   83 +
 .../jena/reasoner/rulesys/builtins/NoValue.java |   81 +
 .../reasoner/rulesys/builtins/NotBNode.java     |   62 +
 .../reasoner/rulesys/builtins/NotDType.java     |   64 +
 .../reasoner/rulesys/builtins/NotEqual.java     |   68 +
 .../reasoner/rulesys/builtins/NotFunctor.java   |   61 +
 .../reasoner/rulesys/builtins/NotLiteral.java   |   62 +
 .../jena/reasoner/rulesys/builtins/Now.java     |   67 +
 .../jena/reasoner/rulesys/builtins/Print.java   |   77 +
 .../jena/reasoner/rulesys/builtins/Product.java |   82 +
 .../reasoner/rulesys/builtins/Quotient.java     |   87 +
 .../jena/reasoner/rulesys/builtins/Regex.java   |   90 +
 .../jena/reasoner/rulesys/builtins/Remove.java  |   77 +
 .../reasoner/rulesys/builtins/StrConcat.java    |   88 +
 .../jena/reasoner/rulesys/builtins/Sum.java     |   82 +
 .../jena/reasoner/rulesys/builtins/Table.java   |   66 +
 .../reasoner/rulesys/builtins/TableAll.java     |   62 +
 .../jena/reasoner/rulesys/builtins/Unbound.java |   57 +
 .../reasoner/rulesys/builtins/UriConcat.java    |   63 +
 .../jena/reasoner/rulesys/builtins/package.html |   30 +
 .../reasoner/rulesys/impl/BBRuleContext.java    |  156 +
 .../reasoner/rulesys/impl/BFRuleContext.java    |  245 +
 .../reasoner/rulesys/impl/BindingStack.java     |  220 +
 .../reasoner/rulesys/impl/BindingVector.java    |  376 +
 .../rulesys/impl/BindingVectorMultiSet.java     |  208 +
 .../reasoner/rulesys/impl/ChoicePointFrame.java |   97 +
 .../rulesys/impl/ConsumerChoicePointFrame.java  |  210 +
 .../reasoner/rulesys/impl/EnvironmentFrame.java |   84 +
 .../impl/EnvironmentFrameWithDerivation.java    |   88 +
 .../jena/reasoner/rulesys/impl/FRuleEngine.java |  670 ++
 .../reasoner/rulesys/impl/FRuleEngineI.java     |   99 +
 .../rulesys/impl/FRuleEngineIFactory.java       |   77 +
 .../jena/reasoner/rulesys/impl/FrameObject.java |   63 +
 .../jena/reasoner/rulesys/impl/Generator.java   |  420 ++
 .../rulesys/impl/GenericChoiceFrame.java        |   62 +
 .../rulesys/impl/GenericTripleMatchFrame.java   |  121 +
 .../reasoner/rulesys/impl/LPAgendaEntry.java    |   43 +
 .../reasoner/rulesys/impl/LPBRuleEngine.java    |  441 ++
 .../rulesys/impl/LPBindingEnvironment.java      |   91 +
 .../reasoner/rulesys/impl/LPInterpreter.java    |  831 +++
 .../rulesys/impl/LPInterpreterContext.java      |   43 +
 .../rulesys/impl/LPInterpreterState.java        |   30 +
 .../jena/reasoner/rulesys/impl/LPRuleStore.java |  274 +
 .../rulesys/impl/LPRuleSyntaxException.java     |   49 +
 .../rulesys/impl/LPTopGoalIterator.java         |  269 +
 .../rulesys/impl/MutableTriplePattern.java      |   46 +
 .../impl/OWLExptRuleTranslationHook.java        |  102 +
 .../rulesys/impl/OWLRuleTranslationHook.java    |  140 +
 .../rulesys/impl/RDFSCMPPreprocessHook.java     |   77 +
 .../reasoner/rulesys/impl/RETEClauseFilter.java |  267 +
 .../reasoner/rulesys/impl/RETEConflictSet.java  |  209 +
 .../jena/reasoner/rulesys/impl/RETEEngine.java  |  629 ++
 .../jena/reasoner/rulesys/impl/RETENode.java    |   35 +
 .../jena/reasoner/rulesys/impl/RETEQueue.java   |  152 +
 .../reasoner/rulesys/impl/RETERuleContext.java  |  208 +
 .../reasoner/rulesys/impl/RETESinkNode.java     |   35 +
 .../reasoner/rulesys/impl/RETESourceNode.java   |   31 +
 .../reasoner/rulesys/impl/RETETerminal.java     |  102 +
 .../reasoner/rulesys/impl/RuleClauseCode.java   |  842 +++
 .../jena/reasoner/rulesys/impl/RuleStore.java   |  188 +
 .../jena/reasoner/rulesys/impl/SafeGraph.java   |   59 +
 .../jena/reasoner/rulesys/impl/StateFlag.java   |   53 +
 .../reasoner/rulesys/impl/TempNodeCache.java    |  139 +
 .../rulesys/impl/TopLevelTripleMatchFrame.java  |   73 +
 .../reasoner/rulesys/impl/TripleMatchFrame.java |   79 +
 .../rulesys/impl/WrappedReasonerFactory.java    |   84 +
 .../jena/reasoner/rulesys/impl/package.html     |   27 +
 .../apache/jena/reasoner/rulesys/package.html   |   41 +
 .../reasoner/transitiveReasoner/GraphNode.java  |  474 ++
 .../transitiveReasoner/TransitiveEngine.java    |  402 +
 .../TransitiveGraphCache.java                   |  673 ++
 .../transitiveReasoner/TransitiveInfGraph.java  |  165 +
 .../transitiveReasoner/TransitiveReasoner.java  |  250 +
 .../TransitiveReasonerFactory.java              |   86 +
 .../reasoner/transitiveReasoner/package.html    |   43 +
 .../apache/jena/shared/AddDeniedException.java  |   33 +
 .../jena/shared/AlreadyExistsException.java     |   31 +
 .../jena/shared/AlreadyReifiedException.java    |   29 +
 .../jena/shared/AssertionFailureException.java  |   29 +
 .../apache/jena/shared/BadBooleanException.java |   29 +
 .../jena/shared/BadCharLiteralException.java    |   28 +
 .../jena/shared/BadDescriptionException.java    |   32 +
 .../BadDescriptionMultipleRootsException.java   |   35 +
 .../shared/BadDescriptionNoRootException.java   |   33 +
 .../org/apache/jena/shared/BadURIException.java |   40 +
 .../org/apache/jena/shared/BrokenException.java |   34 +
 .../jena/shared/CannotCreateException.java      |   31 +
 .../shared/CannotEncodeCharacterException.java  |   48 +
 .../jena/shared/CannotReifyException.java       |   29 +
 .../org/apache/jena/shared/ClosedException.java |   42 +
 .../java/org/apache/jena/shared/Command.java    |   31 +
 .../org/apache/jena/shared/ConfigException.java |   58 +
 .../jena/shared/DeleteDeniedException.java      |   33 +
 .../jena/shared/DoesNotExistException.java      |   34 +
 .../shared/InvalidPropertyURIException.java     |   29 +
 .../org/apache/jena/shared/JenaException.java   |   30 +
 .../main/java/org/apache/jena/shared/Lock.java  |   97 +
 .../java/org/apache/jena/shared/LockMRSW.java   |  250 +
 .../java/org/apache/jena/shared/LockMutex.java  |   37 +
 .../java/org/apache/jena/shared/LockNone.java   |   32 +
 .../NamespaceEndsWithNameCharException.java     |   30 +
 .../jena/shared/NoReaderForLangException.java   |   28 +
 .../shared/NoReasonerSuppliedException.java     |   28 +
 .../jena/shared/NoSuchReasonerException.java    |   42 +
 .../jena/shared/NoWriterForLangException.java   |   28 +
 .../apache/jena/shared/NotFoundException.java   |   33 +
 .../org/apache/jena/shared/PrefixMapping.java   |  229 +
 .../jena/shared/PropertyNotFoundException.java  |   30 +
 .../apache/jena/shared/RandomOrderGraph.java    |  122 +
 .../jena/shared/RulesetNotFoundException.java   |   36 +
 .../org/apache/jena/shared/SyntaxError.java     |   28 +
 .../jena/shared/UnknownPropertyException.java   |   29 +
 .../jena/shared/UpdateDeniedException.java      |   43 +
 .../apache/jena/shared/WrappedException.java    |   31 +
 .../apache/jena/shared/WrappedIOException.java  |   33 +
 .../apache/jena/shared/impl/JenaParameters.java |  115 +
 .../jena/shared/impl/PrefixMappingImpl.java     |  268 +
 .../org/apache/jena/shared/impl/package.html    |   27 +
 .../java/org/apache/jena/shared/package.html    |   29 +
 .../java/org/apache/jena/shared/uuid/Bits.java  |  259 +
 .../org/apache/jena/shared/uuid/JenaUUID.java   |  252 +
 .../org/apache/jena/shared/uuid/LibUUID.java    |   76 +
 .../apache/jena/shared/uuid/UUIDFactory.java    |   26 +
 .../org/apache/jena/shared/uuid/UUID_V1.java    |  118 +
 .../apache/jena/shared/uuid/UUID_V1_Gen.java    |  314 +
 .../org/apache/jena/shared/uuid/UUID_V4.java    |   95 +
 .../apache/jena/shared/uuid/UUID_V4_Gen.java    |  105 +
 .../org/apache/jena/shared/uuid/UUID_nil.java   |   68 +
 .../jena/shared/wg/LazyFileInputStream.java     |   46 +
 .../apache/jena/shared/wg/LazyInputStream.java  |   62 +
 .../jena/shared/wg/LazyURLInputStream.java      |   50 +
 .../jena/shared/wg/LazyZipEntryInputStream.java |   52 +
 .../jena/shared/wg/TestInputStreamFactory.java  |  192 +
 .../java/org/apache/jena/shared/wg/package.html |   30 +
 .../java/org/apache/jena/util/CharEncoding.java |  176 +
 .../org/apache/jena/util/CollectionFactory.java |   61 +
 .../java/org/apache/jena/util/FileManager.java  |  533 ++
 .../java/org/apache/jena/util/FileUtils.java    |  416 ++
 .../apache/jena/util/IteratorCollection.java    |   68 +
 .../org/apache/jena/util/LocationMapper.java    |  398 +
 .../main/java/org/apache/jena/util/Locator.java |   30 +
 .../apache/jena/util/LocatorClassLoader.java    |   85 +
 .../java/org/apache/jena/util/LocatorFile.java  |  150 +
 .../java/org/apache/jena/util/LocatorURL.java   |  157 +
 .../java/org/apache/jena/util/LocatorZip.java   |   88 +
 .../java/org/apache/jena/util/Metadata.java     |   95 +
 .../java/org/apache/jena/util/MonitorGraph.java |   96 +
 .../java/org/apache/jena/util/MonitorModel.java |   78 +
 .../java/org/apache/jena/util/OneToManyMap.java |  533 ++
 .../java/org/apache/jena/util/PrintUtil.java    |  201 +
 .../org/apache/jena/util/ResourceUtils.java     |  332 +
 .../java/org/apache/jena/util/SplitIRI.java     |  313 +
 .../java/org/apache/jena/util/SystemUtils.java  |   52 +
 .../java/org/apache/jena/util/Tokenizer.java    |  163 +
 .../java/org/apache/jena/util/TypedStream.java  |   49 +
 .../main/java/org/apache/jena/util/URIref.java  |  158 +
 .../jena/util/iterator/ArrayIterator.java       |   63 +
 .../jena/util/iterator/ClosableIterator.java    |   47 +
 .../util/iterator/ConcatenatedIterator.java     |  164 +
 .../util/iterator/EarlyBindingIterator.java     |   38 +
 .../jena/util/iterator/ExtendedIterator.java    |   85 +
 .../org/apache/jena/util/iterator/Filter.java   |  126 +
 .../jena/util/iterator/FilterIterator.java      |   88 +
 .../jena/util/iterator/IteratorIterator.java    |   73 +
 .../jena/util/iterator/LateBindingIterator.java |   78 +
 .../apache/jena/util/iterator/LazyIterator.java |   84 +
 .../org/apache/jena/util/iterator/Map1.java     |   33 +
 .../apache/jena/util/iterator/Map1Iterator.java |   56 +
 .../apache/jena/util/iterator/MapFilter.java    |   34 +
 .../jena/util/iterator/MapFilterIterator.java   |   94 +
 .../apache/jena/util/iterator/NiceIterator.java |  222 +
 .../apache/jena/util/iterator/NullIterator.java |   40 +
 .../jena/util/iterator/RandomOrderIterator.java |   67 +
 .../jena/util/iterator/SingletonIterator.java   |   61 +
 .../util/iterator/UniqueExtendedIterator.java   |   93 +
 .../apache/jena/util/iterator/UniqueFilter.java |   44 +
 .../jena/util/iterator/WrappedIterator.java     |  116 +
 .../org/apache/jena/util/iterator/package.html  |   30 +
 .../main/java/org/apache/jena/util/package.html |   28 +
 .../java/org/apache/jena/vocabulary/DB.java     |   76 +
 .../java/org/apache/jena/vocabulary/DC.java     |   27 +
 .../org/apache/jena/vocabulary/DCTerms.java     |  316 +
 .../org/apache/jena/vocabulary/DCTypes.java     |   79 +
 .../java/org/apache/jena/vocabulary/DC_10.java  |   60 +
 .../java/org/apache/jena/vocabulary/DC_11.java  |   86 +
 .../jena/vocabulary/LocationMappingVocab.java   |   53 +
 .../java/org/apache/jena/vocabulary/OWL.java    |  148 +
 .../java/org/apache/jena/vocabulary/OWL2.java   |  195 +
 .../org/apache/jena/vocabulary/OWLResults.java  |   91 +
 .../org/apache/jena/vocabulary/OWLTest.java     |  118 +
 .../jena/vocabulary/OntDocManagerVocab.java     |   98 +
 .../apache/jena/vocabulary/OntEventsVocab.java  |  285 +
 .../java/org/apache/jena/vocabulary/RDF.java    |  102 +
 .../java/org/apache/jena/vocabulary/RDFS.java   |   91 +
 .../org/apache/jena/vocabulary/RDFSyntax.java   |   77 +
 .../org/apache/jena/vocabulary/RDFTest.java     |  126 +
 .../java/org/apache/jena/vocabulary/RSS.java    |   51 +
 .../jena/vocabulary/ReasonerVocabulary.java     |  180 +
 .../java/org/apache/jena/vocabulary/SKOS.java   |   96 +
 .../java/org/apache/jena/vocabulary/SKOSXL.java |   62 +
 .../apache/jena/vocabulary/TestManifest.java    |   86 +
 .../apache/jena/vocabulary/TestManifestX.java   |   72 +
 .../java/org/apache/jena/vocabulary/VCARD.java  |   96 +
 .../java/org/apache/jena/vocabulary/XSD.java    |  231 +
 .../org/apache/jena/vocabulary/package.html     |   28 +
 .../src/main/resources/jena-log4j.properties    |    8 +-
 .../jena/assembler/acceptance/AllAccept.java    |   68 -
 .../jena/assembler/test/AcceptanceTesting.java  |   57 -
 .../jena/assembler/test/AssemblerTestBase.java  |  177 -
 .../assembler/test/MockTransactionModel.java    |   99 -
 .../jena/assembler/test/TestAssemblerGroup.java |  204 -
 .../test/TestAssemblerGroupTracing.java         |   58 -
 .../jena/assembler/test/TestAssemblerHelp.java  |  220 -
 .../assembler/test/TestAssemblerPackage.java    |   35 -
 .../assembler/test/TestAssemblerVocabulary.java |  121 -
 .../hpl/jena/assembler/test/TestAssemblers.java |   64 -
 .../test/TestBuiltinAssemblerGroup.java         |  101 -
 .../assembler/test/TestContentAssembler.java    |  288 -
 .../test/TestDefaultModelAssembler.java         |   44 -
 .../test/TestDocumentManagerAssembler.java      |  135 -
 .../test/TestFileManagerAssembler.java          |   87 -
 .../assembler/test/TestFileModelAssembler.java  |  283 -
 .../jena/assembler/test/TestImportManager.java  |  140 -
 .../assembler/test/TestInfModelAssembler.java   |  116 -
 .../test/TestLocationMapperAssembler.java       |   81 -
 .../test/TestMemoryModelAssembler.java          |   45 -
 .../hp/hpl/jena/assembler/test/TestMode.java    |   67 -
 .../jena/assembler/test/TestModelAssembler.java |   65 -
 .../jena/assembler/test/TestModelContent.java   |  122 -
 .../jena/assembler/test/TestModelExpansion.java |  150 -
 .../test/TestModelSourceAssembler.java          |   45 -
 .../assembler/test/TestOntModelAssembler.java   |  152 -
 .../test/TestOntModelSpecAssembler.java         |  201 -
 .../test/TestPrefixMappingAssembler.java        |   97 -
 .../test/TestReasonerFactoryAssembler.java      |  218 -
 .../hp/hpl/jena/assembler/test/TestRuleSet.java |   86 -
 .../assembler/test/TestRuleSetAssembler.java    |  135 -
 .../assembler/test/TestUnionModelAssembler.java |  131 -
 .../hp/hpl/jena/enhanced/test/TestAllImpl.java  |   89 -
 .../hpl/jena/enhanced/test/TestCommonImpl.java  |   93 -
 .../hp/hpl/jena/enhanced/test/TestModel.java    |   31 -
 .../hpl/jena/enhanced/test/TestModelImpl.java   |   58 -
 .../com/hp/hpl/jena/enhanced/test/TestNode.java |   30 -
 .../hp/hpl/jena/enhanced/test/TestObject.java   |   39 -
 .../hpl/jena/enhanced/test/TestObjectImpl.java  |   74 -
 .../hp/hpl/jena/enhanced/test/TestPackage.java  |  515 --
 .../hp/hpl/jena/enhanced/test/TestProperty.java |   30 -
 .../jena/enhanced/test/TestPropertyImpl.java    |   58 -
 .../hp/hpl/jena/enhanced/test/TestSubject.java  |   30 -
 .../hpl/jena/enhanced/test/TestSubjectImpl.java |   58 -
 .../com/hp/hpl/jena/enhanced/test/package.html  |   26 -
 .../jena/graph/compose/test/TestCaseBasic.java  |   51 -
 .../hpl/jena/graph/compose/test/TestDelta.java  |  137 -
 .../jena/graph/compose/test/TestDifference.java |  115 -
 .../graph/compose/test/TestDisjointUnion.java   |  104 -
 .../hpl/jena/graph/compose/test/TestDyadic.java |   80 -
 .../graph/compose/test/TestIntersection.java    |  121 -
 .../jena/graph/compose/test/TestMultiUnion.java |  332 -
 .../compose/test/TestMultiUnionReifier.java     |   84 -
 .../jena/graph/compose/test/TestPackage.java    |  116 -
 .../compose/test/TestPolyadicPrefixMapping.java |  139 -
 .../hpl/jena/graph/compose/test/TestUnion.java  |  114 -
 .../graph/compose/test/TestUnionStatistics.java |  114 -
 .../hp/hpl/jena/graph/compose/test/package.html |   26 -
 .../jena/graph/impl/TestCollectionGraph.java    |   39 -
 .../hpl/jena/graph/test/AbstractTestGraph.java  | 1028 ---
 .../jena/graph/test/AbstractTestGraphMaker.java |  263 -
 .../jena/graph/test/AbstractTestReifier.java    |  298 -
 .../graph/test/AbstractTestTripleStore.java     |  129 -
 .../hp/hpl/jena/graph/test/GraphTestBase.java   |  443 --
 .../hp/hpl/jena/graph/test/MetaTestGraph.java   |   92 -
 .../hp/hpl/jena/graph/test/NodeCreateUtils.java |  170 -
 .../hpl/jena/graph/test/RecordingListener.java  |  121 -
 .../hpl/jena/graph/test/TestCapabilities.java   |  102 -
 .../hp/hpl/jena/graph/test/TestDateTime.java    |  152 -
 .../com/hp/hpl/jena/graph/test/TestFactory.java |   37 -
 .../hp/hpl/jena/graph/test/TestFileGraph.java   |  195 -
 .../hpl/jena/graph/test/TestFileGraphMaker.java |  112 -
 .../hpl/jena/graph/test/TestFindLiterals.java   |  131 -
 .../com/hp/hpl/jena/graph/test/TestGraph.java   |   80 -
 .../jena/graph/test/TestGraphBaseToString.java  |   89 -
 .../hp/hpl/jena/graph/test/TestGraphEvents.java |   57 -
 .../hpl/jena/graph/test/TestGraphExtract.java   |  119 -
 .../hpl/jena/graph/test/TestGraphListener.java  |  159 -
 .../graph/test/TestGraphMatchWithInference.java |   54 -
 .../jena/graph/test/TestGraphPrefixMapping.java |   49 -
 .../hp/hpl/jena/graph/test/TestGraphUtils.java  |   58 -
 .../graph/test/TestLiteralLabelSameValueAs.java |   99 -
 .../hpl/jena/graph/test/TestLiteralLabels.java  |  131 -
 .../com/hp/hpl/jena/graph/test/TestNode.java    |  726 --
 .../jena/graph/test/TestNodeToTriplesMap.java   |  234 -
 .../com/hp/hpl/jena/graph/test/TestPackage.java |   59 -
 .../graph/test/TestRegisterGraphListener.java   |  168 -
 .../com/hp/hpl/jena/graph/test/TestReifier.java |   70 -
 .../jena/graph/test/TestSimpleGraphMaker.java   |   40 -
 .../com/hp/hpl/jena/graph/test/TestTriple.java  |  268 -
 .../hp/hpl/jena/graph/test/TestTripleField.java |   86 -
 .../hpl/jena/graph/test/TestTypedLiterals.java  | 1414 ----
 .../com/hp/hpl/jena/graph/test/package.html     |   26 -
 .../hpl/jena/mem/test/TestArrayTripleBunch.java |   31 -
 .../com/hp/hpl/jena/mem/test/TestCaseBasic.java |   43 -
 .../com/hp/hpl/jena/mem/test/TestCaseBugs.java  |   60 -
 .../TestConcurrentModificationException.java    |   98 -
 .../com/hp/hpl/jena/mem/test/TestGraphMem.java  |  136 -
 .../com/hp/hpl/jena/mem/test/TestGraphMem2.java |  102 -
 .../hpl/jena/mem/test/TestGraphMemPackage.java  |   34 -
 .../hpl/jena/mem/test/TestGraphTripleStore.java |   39 -
 .../hp/hpl/jena/mem/test/TestHashCommon.java    |  179 -
 .../hpl/jena/mem/test/TestHashedBunchMap.java   |   45 -
 .../jena/mem/test/TestHashedTripleBunch.java    |  161 -
 .../hp/hpl/jena/mem/test/TestMemPackage.java    |   43 -
 .../hp/hpl/jena/mem/test/TestStoreSpeed.java    |   97 -
 .../hp/hpl/jena/mem/test/TestTripleBunch.java   |  157 -
 .../mem/test/TestWrappedSetTripleBunch.java     |   31 -
 .../com/hp/hpl/jena/n3/N3ExternalTestsCom.java  |  100 -
 .../com/hp/hpl/jena/n3/N3JenaWriterTests.java   |  122 -
 .../java/com/hp/hpl/jena/n3/N3TestSuite.java    |   40 -
 .../java/com/hp/hpl/jena/n3/TestResolver.java   |  343 -
 .../test/java/com/hp/hpl/jena/n3/TupleItem.java |   60 -
 .../test/java/com/hp/hpl/jena/n3/TupleSet.java  |  300 -
 .../hp/hpl/jena/n3/turtle/TestBadSyntax.java    |   47 -
 .../com/hp/hpl/jena/n3/turtle/TestSyntax.java   |   47 -
 .../com/hp/hpl/jena/n3/turtle/TestTurtle.java   |   65 -
 .../hp/hpl/jena/n3/turtle/TestTurtleReader.java |   56 -
 .../hpl/jena/n3/turtle/TurtleInternalTests.java |  270 -
 .../hpl/jena/n3/turtle/TurtleTestFactory.java   |   78 -
 .../hp/hpl/jena/n3/turtle/TurtleTestSuite.java  |   39 -
 .../hp/hpl/jena/n3/turtle/TurtleTestVocab.java  |   57 -
 .../hp/hpl/jena/ontology/impl/OntTestBase.java  |  178 -
 .../jena/ontology/impl/TestAllDifferent.java    |  109 -
 .../hp/hpl/jena/ontology/impl/TestAxioms.java   |   81 -
 .../jena/ontology/impl/TestClassExpression.java | 1333 ----
 .../hp/hpl/jena/ontology/impl/TestCreate.java   |  451 --
 .../hpl/jena/ontology/impl/TestFrameView.java   |  391 -
 .../hpl/jena/ontology/impl/TestIndividual.java  |  451 --
 .../ontology/impl/TestListSyntaxCategories.java |  817 ---
 .../hp/hpl/jena/ontology/impl/TestOntClass.java |  435 --
 .../ontology/impl/TestOntDocumentManager.java   |  702 --
 .../hp/hpl/jena/ontology/impl/TestOntGraph.java |   43 -
 .../hp/hpl/jena/ontology/impl/TestOntModel.java | 1298 ----
 .../jena/ontology/impl/TestOntModelSpec.java    |   64 -
 .../jena/ontology/impl/TestOntReasoning.java    |  518 --
 .../hp/hpl/jena/ontology/impl/TestOntTools.java |  470 --
 .../hp/hpl/jena/ontology/impl/TestOntology.java |  184 -
 .../hp/hpl/jena/ontology/impl/TestPackage.java  |   61 -
 .../hp/hpl/jena/ontology/impl/TestProperty.java |  624 --
 .../hp/hpl/jena/ontology/impl/TestResource.java |  680 --
 .../model/test/AbstractContainerMethods.java    |  167 -
 .../rdf/model/test/AbstractModelTestBase.java   |  167 -
 .../jena/rdf/model/test/AbstractTestModel.java  |  231 -
 .../rdf/model/test/AbstractTestPackage.java     |  215 -
 .../test/AbstractTestReifiedStatements.java     |  458 --
 .../jena/rdf/model/test/IsomorphicTests.java    |  419 --
 .../hpl/jena/rdf/model/test/ModelTestBase.java  |  277 -
 .../rdf/model/test/RecordingModelListener.java  |  124 -
 .../jena/rdf/model/test/TestAddAndContains.java |  184 -
 .../hpl/jena/rdf/model/test/TestAddModel.java   |   99 -
 .../hpl/jena/rdf/model/test/TestAltMethods.java |   93 -
 .../hp/hpl/jena/rdf/model/test/TestAnonID.java  |  100 -
 .../hpl/jena/rdf/model/test/TestBagMethods.java |   45 -
 .../jena/rdf/model/test/TestConcurrency.java    |  242 -
 .../rdf/model/test/TestConcurrencyNesting.java  |  154 -
 .../rdf/model/test/TestConcurrencyParallel.java |  173 -
 .../model/test/TestContainerConstructors.java   |   81 -
 .../hpl/jena/rdf/model/test/TestContainers.java |   48 -
 .../hpl/jena/rdf/model/test/TestContains.java   |  118 -
 .../rdf/model/test/TestCopyInOutOfModel.java    |  126 -
 .../com/hp/hpl/jena/rdf/model/test/TestGet.java |  112 -
 .../rdf/model/test/TestHiddenStatements.java    |   59 -
 .../hpl/jena/rdf/model/test/TestIterators.java  |  307 -
 .../hp/hpl/jena/rdf/model/test/TestList.java    |  923 ---
 .../jena/rdf/model/test/TestListStatements.java |  135 -
 .../jena/rdf/model/test/TestListSubjects.java   |  276 -
 .../rdf/model/test/TestListSubjectsEtc.java     |  104 -
 .../jena/rdf/model/test/TestLiteralImpl.java    |  178 -
 .../hpl/jena/rdf/model/test/TestLiterals.java   |  289 -
 .../rdf/model/test/TestLiteralsInModel.java     |  106 -
 .../hp/hpl/jena/rdf/model/test/TestModel.java   |  260 -
 .../rdf/model/test/TestModelBulkUpdate.java     |  151 -
 .../jena/rdf/model/test/TestModelEvents.java    |  457 --
 .../jena/rdf/model/test/TestModelExtract.java   |  181 -
 .../jena/rdf/model/test/TestModelFactory.java   |  117 -
 .../jena/rdf/model/test/TestModelMakerImpl.java |  250 -
 .../rdf/model/test/TestModelPolymorphism.java   |   48 -
 .../rdf/model/test/TestModelPrefixMapping.java  |  129 -
 .../hpl/jena/rdf/model/test/TestModelRead.java  |   90 -
 .../rdf/model/test/TestModelSetOperations.java  |  136 -
 .../hpl/jena/rdf/model/test/TestNamespace.java  |  134 -
 .../rdf/model/test/TestObjectOfProperties.java  |  426 --
 .../hp/hpl/jena/rdf/model/test/TestObjects.java |  200 -
 .../hp/hpl/jena/rdf/model/test/TestPackage.java |   68 -
 .../jena/rdf/model/test/TestPropertyImpl.java   |   87 -
 .../hpl/jena/rdf/model/test/TestRDFNodes.java   |  210 -
 .../jena/rdf/model/test/TestRDFWriterMap.java   |  233 -
 .../jena/rdf/model/test/TestReaderEvents.java   |   73 -
 .../hp/hpl/jena/rdf/model/test/TestReaders.java |  117 -
 .../rdf/model/test/TestReifiedStatements.java   |  373 -
 .../hpl/jena/rdf/model/test/TestRemoveBug.java  |  108 -
 .../hpl/jena/rdf/model/test/TestRemoveSPO.java  |   75 -
 .../rdf/model/test/TestResourceFactory.java     |  228 -
 .../jena/rdf/model/test/TestResourceImpl.java   |  248 -
 .../rdf/model/test/TestResourceMethods.java     |  197 -
 .../hpl/jena/rdf/model/test/TestResources.java  |  346 -
 .../jena/rdf/model/test/TestSelectorUse.java    |  334 -
 .../hpl/jena/rdf/model/test/TestSelectors.java  |   60 -
 .../hpl/jena/rdf/model/test/TestSeqMethods.java | 1206 ---
 .../model/test/TestSimpleListStatements.java    |  262 -
 .../jena/rdf/model/test/TestSimpleSelector.java |  144 -
 .../jena/rdf/model/test/TestStandardModels.java |   42 -
 .../rdf/model/test/TestStatementCreation.java   |  190 -
 .../rdf/model/test/TestStatementMethods.java    |  422 --
 .../hpl/jena/rdf/model/test/TestStatements.java |  154 -
 .../rdf/model/test/helpers/ModelHelper.java     |  231 -
 .../test/helpers/RecordingModelListener.java    |  228 -
 .../model/test/helpers/TestingModelFactory.java |   52 -
 .../hp/hpl/jena/rdfxml/xmlinput/ARPTests.java   |  134 -
 .../hpl/jena/rdfxml/xmlinput/DOM2RDFTest.java   |   86 -
 .../jena/rdfxml/xmlinput/ExceptionTests.java    |  217 -
 .../hp/hpl/jena/rdfxml/xmlinput/InFactoryX.java |   27 -
 .../jena/rdfxml/xmlinput/MemoryLeakTest.java    |   74 -
 .../jena/rdfxml/xmlinput/MoreDOM2RDFTest.java   |   95 -
 .../hp/hpl/jena/rdfxml/xmlinput/MoreTests.java  |  632 --
 .../jena/rdfxml/xmlinput/NTripleTestSuite.java  |  316 -
 .../hpl/jena/rdfxml/xmlinput/Performance.java   |  667 --
 .../jena/rdfxml/xmlinput/SAX2RDFMoreTests.java  |   98 -
 .../hpl/jena/rdfxml/xmlinput/SAX2RDFTest.java   | 1299 ----
 .../jena/rdfxml/xmlinput/StAX2ModelTest.java    | 1190 ---
 .../hpl/jena/rdfxml/xmlinput/TaintingTests.java |  247 -
 .../hpl/jena/rdfxml/xmlinput/TestARPMain.java   | 2778 -------
 .../hpl/jena/rdfxml/xmlinput/TestErrorMsg.java  |  127 -
 .../hpl/jena/rdfxml/xmlinput/TestPackage.java   |   48 -
 .../rdfxml/xmlinput/TestPropEltErrorMsg.java    |  496 --
 .../hp/hpl/jena/rdfxml/xmlinput/TestScope.java  |   91 -
 .../hp/hpl/jena/rdfxml/xmlinput/URITests.java   |  115 -
 .../hpl/jena/rdfxml/xmlinput/WGTestSuite.java   | 1046 ---
 .../jena/rdfxml/xmlinput/states/AttrEvent.java  |   59 -
 .../rdfxml/xmlinput/states/ElementEvent.java    |   53 -
 .../hpl/jena/rdfxml/xmlinput/states/Event.java  |   40 -
 .../jena/rdfxml/xmlinput/states/EventList.java  |  192 -
 .../rdfxml/xmlinput/states/EventRecord.java     |   95 -
 .../rdfxml/xmlinput/states/FullEventRecord.java |   78 -
 .../rdfxml/xmlinput/states/InternalEvent.java   |   39 -
 .../hpl/jena/rdfxml/xmlinput/states/QName.java  |   42 -
 .../rdfxml/xmlinput/states/TestARPStates.java   |   64 -
 .../jena/rdfxml/xmlinput/states/TestData.java   |  434 --
 .../rdfxml/xmlinput/states/TestEventList.java   |   94 -
 .../jena/rdfxml/xmlinput/states/TestFrame.java  |   84 -
 .../rdfxml/xmlinput/states/TestHandler.java     |   80 -
 .../rdfxml/xmloutput/BigAbbrevTestPackage.java  |   29 -
 .../jena/rdfxml/xmloutput/PrettyWriterTest.java |  173 -
 .../jena/rdfxml/xmloutput/TestEntityOutput.java |  207 -
 .../rdfxml/xmloutput/TestLiteralEncoding.java   |  136 -
 .../jena/rdfxml/xmloutput/TestMacEncodings.java |  107 -
 .../hpl/jena/rdfxml/xmloutput/TestPackage.java  |   82 -
 .../rdfxml/xmloutput/TestWriterFeatures.java    |   81 -
 .../rdfxml/xmloutput/TestWriterInterface.java   |  102 -
 .../jena/rdfxml/xmloutput/TestXMLAbbrev.java    |  155 -
 .../jena/rdfxml/xmloutput/TestXMLFeatures.java  |  713 --
 .../rdfxml/xmloutput/XMLOutputTestBase.java     |  242 -
 .../rdfxml/xmloutput/testWriterAndReader.java   |  430 --
 .../reasoner/rulesys/test/ConcurrencyTest.java  |  196 -
 .../jena/reasoner/rulesys/test/DebugOWL.java    |  373 -
 .../jena/reasoner/rulesys/test/DebugRules.java  |   70 -
 .../rulesys/test/FRuleEngineIFactoryTest.java   |  232 -
 .../rulesys/test/OWLConsistencyTest.java        |  157 -
 .../jena/reasoner/rulesys/test/OWLUnitTest.java |  273 -
 .../jena/reasoner/rulesys/test/OWLWGTester.java |  263 -
 .../reasoner/rulesys/test/TestBackchainer.java  |  916 ---
 .../jena/reasoner/rulesys/test/TestBasicLP.java | 1381 ----
 .../jena/reasoner/rulesys/test/TestBasics.java  |  586 --
 .../jena/reasoner/rulesys/test/TestBugs.java    |  896 ---
 .../reasoner/rulesys/test/TestCapabilities.java |   73 -
 .../rulesys/test/TestComparatorBuiltins.java    |  209 -
 .../rulesys/test/TestConfigVocabulary.java      |   85 -
 .../jena/reasoner/rulesys/test/TestFBRules.java | 1102 ---
 .../test/TestGenericRuleReasonerConfig.java     |  124 -
 .../reasoner/rulesys/test/TestGenericRules.java |  502 --
 .../rulesys/test/TestInferenceReification.java  |  108 -
 .../reasoner/rulesys/test/TestLPDerivation.java |  217 -
 .../jena/reasoner/rulesys/test/TestLPRDFS.java  |  172 -
 .../rulesys/test/TestOWLConsistency.java        |  141 -
 .../jena/reasoner/rulesys/test/TestOWLMisc.java |  246 -
 .../jena/reasoner/rulesys/test/TestPackage.java |   83 -
 .../jena/reasoner/rulesys/test/TestRDFS9.java   |  113 -
 .../reasoner/rulesys/test/TestRDFSRules.java    |  131 -
 .../jena/reasoner/rulesys/test/TestRETE.java    |  286 -
 .../test/TestRestrictionsDontNeedTyping.java    |   96 -
 .../reasoner/rulesys/test/TestRuleLoader.java   |   41 -
 .../reasoner/rulesys/test/TestSetRules.java     |   90 -
 .../rulesys/test/TestTrialOWLRules.java         |  221 -
 .../rulesys/test/WebOntTestHarness.java         |  598 --
 .../hpl/jena/reasoner/rulesys/test/package.html |   28 -
 .../hpl/jena/reasoner/test/ManualExample.java   |  159 -
 .../com/hp/hpl/jena/reasoner/test/Matcher.java  |  219 -
 .../jena/reasoner/test/ReasonerTestBase.java    |   41 -
 .../hpl/jena/reasoner/test/ReasonerTester.java  |  328 -
 .../jena/reasoner/test/TestCurrentRDFWG.java    |  165 -
 .../hp/hpl/jena/reasoner/test/TestInfGraph.java |   65 -
 .../hp/hpl/jena/reasoner/test/TestInfModel.java |   81 -
 .../reasoner/test/TestInfPrefixMapping.java     |   50 -
 .../hp/hpl/jena/reasoner/test/TestPackage.java  |   52 -
 .../jena/reasoner/test/TestRDFSReasoners.java   |  290 -
 .../hpl/jena/reasoner/test/TestReasoners.java   |  469 --
 .../hpl/jena/reasoner/test/TestSafeModel.java   |   95 -
 .../reasoner/test/TestTransitiveGraphCache.java |  553 --
 .../com/hp/hpl/jena/reasoner/test/TestUtil.java |  151 -
 .../jena/reasoner/test/WGReasonerTester.java    |  400 -
 .../hp/hpl/jena/regression/TestCaseBasic.java   |   78 -
 .../jena/shared/AbstractTestPrefixMapping.java  |  468 --
 .../jena/shared/RandomizedTestCaseBasic.java    |   43 -
 .../hp/hpl/jena/shared/TestJenaException.java   |   43 -
 .../hp/hpl/jena/shared/TestPrefixMapping.java   |   66 -
 .../hp/hpl/jena/shared/TestSharedPackage.java   |   35 -
 .../com/hp/hpl/jena/shared/uuid/TestBits.java   |  458 --
 .../com/hp/hpl/jena/shared/uuid/TestUUID.java   |  202 -
 .../hp/hpl/jena/shared/uuid/TestUUID_JRE.java   |  122 -
 .../hp/hpl/jena/shared/uuid/UUIDTestSuite.java  |   40 -
 .../java/com/hp/hpl/jena/test/JenaTest.java     |   26 -
 .../java/com/hp/hpl/jena/test/JenaTestBase.java |  204 -
 .../java/com/hp/hpl/jena/test/TestPackage.java  |   70 -
 .../com/hp/hpl/jena/test/TestSystemSetup.java   |   39 -
 .../java/com/hp/hpl/jena/util/TestCache.java    |  126 -
 .../hp/hpl/jena/util/TestCollectionFactory.java |   71 -
 .../com/hp/hpl/jena/util/TestFileManager.java   |  239 -
 .../com/hp/hpl/jena/util/TestFileUtils.java     |  229 -
 .../hpl/jena/util/TestIteratorCollection.java   |  135 -
 .../hp/hpl/jena/util/TestLocationMapper.java    |  179 -
 .../java/com/hp/hpl/jena/util/TestLocators.java |   95 -
 .../java/com/hp/hpl/jena/util/TestMonitors.java |  190 -
 .../com/hp/hpl/jena/util/TestOneToManyMap.java  |  356 -
 .../java/com/hp/hpl/jena/util/TestPackage.java  |   60 -
 .../com/hp/hpl/jena/util/TestPrintUtil.java     |   65 -
 .../com/hp/hpl/jena/util/TestTokenizer.java     |   80 -
 .../java/com/hp/hpl/jena/util/TestUtil.java     |  140 -
 .../iterator/test/LoggingClosableIterator.java  |   41 -
 .../jena/util/iterator/test/TestAndThen.java    |  151 -
 .../util/iterator/test/TestAsCollection.java    |   61 -
 .../jena/util/iterator/test/TestFilters.java    |  121 -
 .../util/iterator/test/TestMapIterators.java    |   44 -
 .../util/iterator/test/TestNullIterator.java    |   49 -
 .../jena/util/iterator/test/TestPackage.java    |   39 -
 .../util/iterator/test/TestResourceUtils.java   |  259 -
 .../util/iterator/test/TestWrappedIterator.java |   69 -
 .../com/hp/hpl/jena/util/junit/Manifest.java    |  183 -
 .../jena/util/junit/ManifestItemHandler.java    |   32 -
 .../hp/hpl/jena/util/junit/TestException.java   |   32 -
 .../jena/util/junit/TestFactoryManifest.java    |   96 -
 .../com/hp/hpl/jena/util/junit/TestUtils.java   |  102 -
 .../vocabulary/test/TestOWL2Vocabulary.java     |  170 -
 .../hpl/jena/vocabulary/test/TestVocabDB.java   |   65 -
 .../hpl/jena/vocabulary/test/TestVocabDC10.java |   51 -
 .../hpl/jena/vocabulary/test/TestVocabRDF.java  |   97 -
 .../hpl/jena/vocabulary/test/TestVocabRDFS.java |   72 -
 .../hpl/jena/vocabulary/test/TestVocabRSS.java  |   47 -
 .../jena/vocabulary/test/TestVocabVCARD.java    |   91 -
 .../jena/vocabulary/test/TestVocabularies.java  |   43 -
 .../hpl/jena/vocabulary/test/VocabTestBase.java |   34 -
 .../src/test/java/jena/test/Test_rdfcat.java    |   18 +-
 .../src/test/java/jena/test/Test_schemagen.java |    6 +-
 jena-core/src/test/java/jena/test/rdfparse.java |    4 +-
 .../jena/assembler/acceptance/AllAccept.java    |   67 +
 .../jena/assembler/test/AcceptanceTesting.java  |   57 +
 .../jena/assembler/test/AssemblerTestBase.java  |  177 +
 .../assembler/test/MockTransactionModel.java    |   98 +
 .../jena/assembler/test/TestAssemblerGroup.java |  212 +
 .../test/TestAssemblerGroupTracing.java         |   58 +
 .../jena/assembler/test/TestAssemblerHelp.java  |  220 +
 .../assembler/test/TestAssemblerPackage.java    |   35 +
 .../assembler/test/TestAssemblerVocabulary.java |  121 +
 .../jena/assembler/test/TestAssemblers.java     |   62 +
 .../test/TestBuiltinAssemblerGroup.java         |   99 +
 .../assembler/test/TestContentAssembler.java    |  288 +
 .../test/TestDefaultModelAssembler.java         |   44 +
 .../test/TestDocumentManagerAssembler.java      |  135 +
 .../test/TestFileManagerAssembler.java          |   87 +
 .../jena/assembler/test/TestImportManager.java  |  140 +
 .../assembler/test/TestInfModelAssembler.java   |  116 +
 .../test/TestLocationMapperAssembler.java       |   81 +
 .../test/TestMemoryModelAssembler.java          |   45 +
 .../apache/jena/assembler/test/TestMode.java    |   67 +
 .../jena/assembler/test/TestModelAssembler.java |   65 +
 .../jena/assembler/test/TestModelContent.java   |  122 +
 .../jena/assembler/test/TestModelExpansion.java |  150 +
 .../test/TestModelSourceAssembler.java          |   45 +
 .../assembler/test/TestOntModelAssembler.java   |  151 +
 .../test/TestOntModelSpecAssembler.java         |  200 +
 .../test/TestPrefixMappingAssembler.java        |   97 +
 .../test/TestReasonerFactoryAssembler.java      |  218 +
 .../apache/jena/assembler/test/TestRuleSet.java |   86 +
 .../assembler/test/TestRuleSetAssembler.java    |  135 +
 .../assembler/test/TestUnionModelAssembler.java |  131 +
 .../apache/jena/datatypes/TestDatatypes.java    |  159 +
 .../org/apache/jena/datatypes/TestPackage.java  |   40 +
 .../apache/jena/enhanced/test/TestAllImpl.java  |   89 +
 .../jena/enhanced/test/TestCommonImpl.java      |   93 +
 .../apache/jena/enhanced/test/TestModel.java    |   31 +
 .../jena/enhanced/test/TestModelImpl.java       |   58 +
 .../org/apache/jena/enhanced/test/TestNode.java |   30 +
 .../apache/jena/enhanced/test/TestObject.java   |   39 +
 .../jena/enhanced/test/TestObjectImpl.java      |   74 +
 .../apache/jena/enhanced/test/TestPackage.java  |  487 ++
 .../apache/jena/enhanced/test/TestProperty.java |   30 +
 .../jena/enhanced/test/TestPropertyImpl.java    |   58 +
 .../apache/jena/enhanced/test/TestSubject.java  |   30 +
 .../jena/enhanced/test/TestSubjectImpl.java     |   58 +
 .../apache/jena/graph/GraphContractTest.java    | 1729 +++++
 .../graph/GraphEventManagerContractTest.java    |  500 ++
 .../jena/graph/GraphMakerContractTest.java      |  295 +
 .../graph/GraphWithPerformContractTest.java     |   86 +
 .../jena/graph/RecordingGraphListener.java      |   92 +
 .../graph/TransactionHandlerContractTest.java   |  136 +
 .../apache/jena/graph/compose/DeltaTest.java    |  110 +
 .../jena/graph/compose/DifferenceTest.java      |   97 +
 .../jena/graph/compose/IntersectionTest.java    |  109 +
 .../apache/jena/graph/compose/UnionTest.java    |  185 +
 .../jena/graph/compose/test/TestCaseBasic.java  |   51 +
 .../jena/graph/compose/test/TestDelta.java      |  136 +
 .../jena/graph/compose/test/TestDifference.java |  114 +
 .../graph/compose/test/TestDisjointUnion.java   |  103 +
 .../jena/graph/compose/test/TestDyadic.java     |   79 +
 .../graph/compose/test/TestIntersection.java    |  120 +
 .../jena/graph/compose/test/TestMultiUnion.java |  331 +
 .../compose/test/TestMultiUnionReifier.java     |   84 +
 .../jena/graph/compose/test/TestPackage.java    |  115 +
 .../compose/test/TestPolyadicPrefixMapping.java |  138 +
 .../jena/graph/compose/test/TestUnion.java      |  113 +
 .../graph/compose/test/TestUnionStatistics.java |  114 +
 .../jena/graph/impl/CollectionGraph_CS.java     |   67 +
 .../jena/graph/impl/SimpleEventManager_CS.java  |   54 +
 .../jena/graph/impl/SimpleGraphMaker_CS.java    |   54 +
 .../graph/impl/SimpleTransactionHandler_CS.java |   54 +
 .../graph/impl/TripleStoreContractTest.java     |  160 +
 .../apache/jena/graph/impl/WrappedGraph_CS.java |   63 +
 .../jena/graph/test/AbstractTestGraph.java      | 1018 +++
 .../jena/graph/test/AbstractTestGraphMaker.java |  263 +
 .../jena/graph/test/AbstractTestReifier.java    |  298 +
 .../graph/test/AbstractTestTripleStore.java     |  129 +
 .../apache/jena/graph/test/GraphTestBase.java   |  439 ++
 .../apache/jena/graph/test/MetaTestGraph.java   |   91 +
 .../apache/jena/graph/test/NodeCreateUtils.java |  170 +
 .../jena/graph/test/RecordingListener.java      |  121 +
 .../jena/graph/test/TestCapabilities.java       |  102 +
 .../apache/jena/graph/test/TestDateTime.java    |  151 +
 .../org/apache/jena/graph/test/TestFactory.java |   36 +
 .../jena/graph/test/TestFindLiterals.java       |  123 +
 .../org/apache/jena/graph/test/TestGraph.java   |   79 +
 .../jena/graph/test/TestGraphBaseToString.java  |   89 +
 .../apache/jena/graph/test/TestGraphEvents.java |   57 +
 .../jena/graph/test/TestGraphExtract.java       |  118 +
 .../jena/graph/test/TestGraphListener.java      |  152 +
 .../graph/test/TestGraphMatchWithInference.java |   53 +
 .../jena/graph/test/TestGraphPrefixMapping.java |   48 +
 .../apache/jena/graph/test/TestGraphUtils.java  |   57 +
 .../graph/test/TestLiteralLabelSameValueAs.java |   98 +
 .../jena/graph/test/TestLiteralLabels.java      |  130 +
 .../org/apache/jena/graph/test/TestNode.java    |  725 ++
 .../jena/graph/test/TestNodeToTriplesMap.java   |  233 +
 .../org/apache/jena/graph/test/TestPackage.java |   57 +
 .../graph/test/TestRegisterGraphListener.java   |  168 +
 .../org/apache/jena/graph/test/TestReifier.java |   69 +
 .../jena/graph/test/TestSimpleGraphMaker.java   |   40 +
 .../org/apache/jena/graph/test/TestTriple.java  |  271 +
 .../apache/jena/graph/test/TestTripleField.java |   78 +
 .../jena/graph/test/TestTypedLiterals.java      | 1413 ++++
 .../java/org/apache/jena/mem/ArrayBunch_CS.java |   52 +
 .../apache/jena/mem/BunchMapContractTest.java   |  163 +
 .../java/org/apache/jena/mem/GraphMem_CS.java   |  115 +
 .../apache/jena/mem/GraphTripleStoreMem_CS.java |   51 +
 .../apache/jena/mem/GraphTripleStore_CS.java    |   51 +
 .../org/apache/jena/mem/HashedBunchMap_CS.java  |   52 +
 .../apache/jena/mem/HashedTripleBunch_CS.java   |   50 +
 .../java/org/apache/jena/mem/SetBunch_CS.java   |   50 +
 .../jena/mem/TripleBunchContractTest.java       |  205 +
 .../org/apache/jena/mem/WrappedHashMap_CS.java  |   52 +
 .../jena/mem/test/TestArrayTripleBunch.java     |   31 +
 .../org/apache/jena/mem/test/TestCaseBasic.java |   43 +
 .../org/apache/jena/mem/test/TestCaseBugs.java  |   60 +
 .../TestConcurrentModificationException.java    |   97 +
 .../org/apache/jena/mem/test/TestGraphMem.java  |  135 +
 .../org/apache/jena/mem/test/TestGraphMem2.java |  101 +
 .../jena/mem/test/TestGraphMemPackage.java      |   34 +
 .../jena/mem/test/TestGraphTripleStore.java     |   38 +
 .../apache/jena/mem/test/TestHashCommon.java    |  179 +
 .../jena/mem/test/TestHashedBunchMap.java       |   45 +
 .../jena/mem/test/TestHashedTripleBunch.java    |  161 +
 .../apache/jena/mem/test/TestMemPackage.java    |   43 +
 .../apache/jena/mem/test/TestTripleBunch.java   |  157 +
 .../mem/test/TestWrappedSetTripleBunch.java     |   31 +
 .../org/apache/jena/n3/N3ExternalTestsCom.java  |   99 +
 .../org/apache/jena/n3/N3JenaWriterTests.java   |  123 +
 .../java/org/apache/jena/n3/N3TestSuite.java    |   40 +
 .../java/org/apache/jena/n3/TestResolver.java   |  342 +
 .../test/java/org/apache/jena/n3/TupleItem.java |   60 +
 .../test/java/org/apache/jena/n3/TupleSet.java  |  300 +
 .../apache/jena/n3/turtle/TestBadSyntax.java    |   46 +
 .../org/apache/jena/n3/turtle/TestSyntax.java   |   45 +
 .../org/apache/jena/n3/turtle/TestTurtle.java   |   64 +
 .../apache/jena/n3/turtle/TestTurtleReader.java |   55 +
 .../jena/n3/turtle/TurtleInternalTests.java     |  271 +
 .../jena/n3/turtle/TurtleTestFactory.java       |   77 +
 .../apache/jena/n3/turtle/TurtleTestSuite.java  |   39 +
 .../apache/jena/n3/turtle/TurtleTestVocab.java  |   57 +
 .../apache/jena/ontology/impl/OntTestBase.java  |  177 +
 .../jena/ontology/impl/TestAllDifferent.java    |  108 +
 .../apache/jena/ontology/impl/TestAxioms.java   |   81 +
 .../jena/ontology/impl/TestClassExpression.java | 1332 ++++
 .../apache/jena/ontology/impl/TestCreate.java   |  451 ++
 .../jena/ontology/impl/TestFrameView.java       |  390 +
 .../jena/ontology/impl/TestIndividual.java      |  450 ++
 .../ontology/impl/TestListSyntaxCategories.java |  816 +++
 .../apache/jena/ontology/impl/TestOntClass.java |  435 ++
 .../ontology/impl/TestOntDocumentManager.java   |  700 ++
 .../apache/jena/ontology/impl/TestOntGraph.java |   42 +
 .../apache/jena/ontology/impl/TestOntModel.java | 1302 ++++
 .../jena/ontology/impl/TestOntModelSpec.java    |   64 +
 .../jena/ontology/impl/TestOntReasoning.java    |  517 ++
 .../apache/jena/ontology/impl/TestOntTools.java |  469 ++
 .../apache/jena/ontology/impl/TestOntology.java |  183 +
 .../apache/jena/ontology/impl/TestPackage.java  |   61 +
 .../apache/jena/ontology/impl/TestProperty.java |  623 ++
 .../apache/jena/ontology/impl/TestResource.java |  679 ++
 .../model/test/AbstractContainerMethods.java    |  166 +
 .../rdf/model/test/AbstractModelTestBase.java   |  166 +
 .../jena/rdf/model/test/AbstractTestModel.java  |  231 +
 .../rdf/model/test/AbstractTestPackage.java     |  214 +
 .../test/AbstractTestReifiedStatements.java     |  449 ++
 .../jena/rdf/model/test/IsomorphicTests.java    |  418 ++
 .../jena/rdf/model/test/ModelTestBase.java      |  269 +
 .../rdf/model/test/RecordingModelListener.java  |  123 +
 .../jena/rdf/model/test/TestAddAndContains.java |  183 +
 .../jena/rdf/model/test/TestAddModel.java       |   98 +
 .../jena/rdf/model/test/TestAltMethods.java     |   87 +
 .../apache/jena/rdf/model/test/TestAnonID.java  |   99 +
 .../jena/rdf/model/test/TestBagMethods.java     |   45 +
 .../jena/rdf/model/test/TestConcurrency.java    |  240 +
 .../rdf/model/test/TestConcurrencyNesting.java  |  153 +
 .../rdf/model/test/TestConcurrencyParallel.java |  172 +
 .../model/test/TestContainerConstructors.java   |   80 +
 .../jena/rdf/model/test/TestContainers.java     |   47 +
 .../jena/rdf/model/test/TestContains.java       |  113 +
 .../rdf/model/test/TestCopyInOutOfModel.java    |  120 +
 .../org/apache/jena/rdf/model/test/TestGet.java |  107 +
 .../rdf/model/test/TestHiddenStatements.java    |   58 +
 .../jena/rdf/model/test/TestIterators.java      |  299 +
 .../apache/jena/rdf/model/test/TestList.java    |  907 +++
 .../jena/rdf/model/test/TestListStatements.java |  134 +
 .../jena/rdf/model/test/TestListSubjects.java   |  275 +
 .../rdf/model/test/TestListSubjectsEtc.java     |  103 +
 .../jena/rdf/model/test/TestLiteralImpl.java    |  177 +
 .../jena/rdf/model/test/TestLiterals.java       |  288 +
 .../rdf/model/test/TestLiteralsInModel.java     |  105 +
 .../apache/jena/rdf/model/test/TestModel.java   |  253 +
 .../rdf/model/test/TestModelBulkUpdate.java     |  150 +
 .../jena/rdf/model/test/TestModelEvents.java    |  456 ++
 .../jena/rdf/model/test/TestModelExtract.java   |  167 +
 .../jena/rdf/model/test/TestModelFactory.java   |  116 +
 .../jena/rdf/model/test/TestModelMakerImpl.java |  249 +
 .../rdf/model/test/TestModelPolymorphism.java   |   47 +
 .../rdf/model/test/TestModelPrefixMapping.java  |  128 +
 .../jena/rdf/model/test/TestModelRead.java      |   79 +
 .../rdf/model/test/TestModelSetOperations.java  |  135 +
 .../jena/rdf/model/test/TestNamespace.java      |  133 +
 .../rdf/model/test/TestObjectOfProperties.java  |  420 ++
 .../apache/jena/rdf/model/test/TestObjects.java |  194 +
 .../apache/jena/rdf/model/test/TestPackage.java |   67 +
 .../jena/rdf/model/test/TestPropertyImpl.java   |   86 +
 .../jena/rdf/model/test/TestRDFNodes.java       |  201 +
 .../jena/rdf/model/test/TestRDFWriterMap.java   |  228 +
 .../jena/rdf/model/test/TestReaderEvents.java   |   73 +
 .../apache/jena/rdf/model/test/TestReaders.java |   94 +
 .../rdf/model/test/TestReifiedStatements.java   |  364 +
 .../jena/rdf/model/test/TestRemoveBug.java      |  101 +
 .../jena/rdf/model/test/TestRemoveSPO.java      |   74 +
 .../rdf/model/test/TestResourceFactory.java     |  222 +
 .../jena/rdf/model/test/TestResourceImpl.java   |  243 +
 .../rdf/model/test/TestResourceMethods.java     |  196 +
 .../jena/rdf/model/test/TestResources.java      |  337 +
 .../jena/rdf/model/test/TestSelectorUse.java    |  324 +
 .../jena/rdf/model/test/TestSelectors.java      |   55 +
 .../jena/rdf/model/test/TestSeqMethods.java     | 1197 +++
 .../model/test/TestSimpleListStatements.java    |  254 +
 .../jena/rdf/model/test/TestSimpleSelector.java |  139 +
 .../jena/rdf/model/test/TestStandardModels.java |   41 +
 .../rdf/model/test/TestStatementCreation.java   |  183 +
 .../rdf/model/test/TestStatementMethods.java    |  413 ++
 .../jena/rdf/model/test/TestStatements.java     |  146 +
 .../rdf/model/test/helpers/ModelHelper.java     |  223 +
 .../test/helpers/RecordingModelListener.java    |  227 +
 .../model/test/helpers/TestingModelFactory.java |   52 +
 .../apache/jena/rdfxml/xmlinput/ARPTests.java   |  134 +
 .../jena/rdfxml/xmlinput/DOM2RDFTest.java       |   85 +
 .../jena/rdfxml/xmlinput/ExceptionTests.java    |  216 +
 .../apache/jena/rdfxml/xmlinput/InFactoryX.java |   27 +
 .../jena/rdfxml/xmlinput/MemoryLeakTest.java    |   73 +
 .../jena/rdfxml/xmlinput/MoreDOM2RDFTest.java   |   94 +
 .../apache/jena/rdfxml/xmlinput/MoreTests.java  |  631 ++
 .../jena/rdfxml/xmlinput/NTripleTestSuite.java  |  315 +
 .../jena/rdfxml/xmlinput/SAX2RDFMoreTests.java  |   97 +
 .../jena/rdfxml/xmlinput/SAX2RDFTest.java       | 1285 ++++
 .../jena/rdfxml/xmlinput/StAX2ModelTest.java    | 1189 +++
 .../jena/rdfxml/xmlinput/TaintingTests.java     |  246 +
 .../jena/rdfxml/xmlinput/TestARPMain.java       | 2777 +++++++
 .../jena/rdfxml/xmlinput/TestErrorMsg.java      |  126 +
 .../jena/rdfxml/xmlinput/TestPackage.java       |   48 +
 .../rdfxml/xmlinput/TestPropEltErrorMsg.java    |  495 ++
 .../apache/jena/rdfxml/xmlinput/TestScope.java  |   90 +
 .../apache/jena/rdfxml/xmlinput/URITests.java   |  115 +
 .../jena/rdfxml/xmlinput/WGTestSuite.java       | 1037 +++
 .../jena/rdfxml/xmlinput/states/AttrEvent.java  |   58 +
 .../rdfxml/xmlinput/states/ElementEvent.java    |   52 +
 .../jena/rdfxml/xmlinput/states/Event.java      |   39 +
 .../jena/rdfxml/xmlinput/states/EventList.java  |  191 +
 .../rdfxml/xmlinput/states/EventRecord.java     |   95 +
 .../rdfxml/xmlinput/states/FullEventRecord.java |   78 +
 .../rdfxml/xmlinput/states/InternalEvent.java   |   39 +
 .../jena/rdfxml/xmlinput/states/QName.java      |   42 +
 .../rdfxml/xmlinput/states/TestARPStates.java   |   64 +
 .../jena/rdfxml/xmlinput/states/TestData.java   |  427 ++
 .../rdfxml/xmlinput/states/TestEventList.java   |   93 +
 .../jena/rdfxml/xmlinput/states/TestFrame.java  |   83 +
 .../rdfxml/xmlinput/states/TestHandler.java     |   79 +
 .../rdfxml/xmloutput/BigAbbrevTestPackage.java  |   29 +
 .../jena/rdfxml/xmloutput/PrettyWriterTest.java |  172 +
 .../jena/rdfxml/xmloutput/TestEntityOutput.java |  207 +
 .../rdfxml/xmloutput/TestLiteralEncoding.java   |  136 +
 .../jena/rdfxml/xmloutput/TestMacEncodings.java |  106 +
 .../jena/rdfxml/xmloutput/TestPackage.java      |   75 +
 .../rdfxml/xmloutput/TestWriterFeatures.java    |   81 +
 .../rdfxml/xmloutput/TestWriterInterface.java   |   82 +
 .../jena/rdfxml/xmloutput/TestXMLAbbrev.java    |  155 +
 .../jena/rdfxml/xmloutput/TestXMLFeatures.java  |  692 ++
 .../rdfxml/xmloutput/XMLOutputTestBase.java     |  242 +
 .../rdfxml/xmloutput/testWriterAndReader.java   |  429 ++
 .../rulesys/impl/TestLPBRuleEngineLeak.java     |  171 +
 .../reasoner/rulesys/test/ConcurrencyTest.java  |  195 +
 .../jena/reasoner/rulesys/test/DebugOWL.java    |  371 +
 .../jena/reasoner/rulesys/test/DebugRules.java  |   70 +
 .../rulesys/test/FRuleEngineIFactoryTest.java   |  223 +
 .../rulesys/test/OWLConsistencyTest.java        |  155 +
 .../jena/reasoner/rulesys/test/OWLUnitTest.java |  273 +
 .../jena/reasoner/rulesys/test/OWLWGTester.java |  261 +
 .../reasoner/rulesys/test/TestBackchainer.java  |  915 +++
 .../jena/reasoner/rulesys/test/TestBasicLP.java | 1379 ++++
 .../jena/reasoner/rulesys/test/TestBasics.java  |  587 ++
 .../jena/reasoner/rulesys/test/TestBugs.java    |  895 +++
 .../reasoner/rulesys/test/TestCapabilities.java |   72 +
 .../rulesys/test/TestComparatorBuiltins.java    |  199 +
 .../rulesys/test/TestConfigVocabulary.java      |   85 +
 .../jena/reasoner/rulesys/test/TestFBRules.java | 1101 +++
 .../test/TestGenericRuleReasonerConfig.java     |  124 +
 .../reasoner/rulesys/test/TestGenericRules.java |  501 ++
 .../rulesys/test/TestInferenceReification.java  |  107 +
 .../reasoner/rulesys/test/TestLPDerivation.java |  216 +
 .../jena/reasoner/rulesys/test/TestLPRDFS.java  |  172 +
 .../rulesys/test/TestOWLConsistency.java        |  142 +
 .../jena/reasoner/rulesys/test/TestOWLMisc.java |  245 +
 .../jena/reasoner/rulesys/test/TestPackage.java |   87 +
 .../jena/reasoner/rulesys/test/TestRDFS9.java   |  112 +
 .../reasoner/rulesys/test/TestRDFSRules.java    |  132 +
 .../jena/reasoner/rulesys/test/TestRETE.java    |  285 +
 .../test/TestRestrictionsDontNeedTyping.java    |   96 +
 .../reasoner/rulesys/test/TestRuleLoader.java   |   40 +
 .../reasoner/rulesys/test/TestSetRules.java     |   89 +
 .../rulesys/test/TestTrialOWLRules.java         |  221 +
 .../rulesys/test/WebOntTestHarness.java         |  598 ++
 .../jena/reasoner/test/ManualExample.java       |  159 +
 .../org/apache/jena/reasoner/test/Matcher.java  |  218 +
 .../jena/reasoner/test/ReasonerTestBase.java    |   41 +
 .../jena/reasoner/test/ReasonerTester.java      |  327 +
 .../jena/reasoner/test/TestCurrentRDFWG.java    |  164 +
 .../apache/jena/reasoner/test/TestInfGraph.java |   64 +
 .../apache/jena/reasoner/test/TestInfModel.java |   80 +
 .../reasoner/test/TestInfPrefixMapping.java     |   49 +
 .../apache/jena/reasoner/test/TestPackage.java  |   52 +
 .../jena/reasoner/test/TestRDFSReasoners.java   |  287 +
 .../jena/reasoner/test/TestReasoners.java       |  470 ++
 .../jena/reasoner/test/TestSafeModel.java       |   87 +
 .../reasoner/test/TestTransitiveGraphCache.java |  552 ++
 .../org/apache/jena/reasoner/test/TestUtil.java |  150 +
 .../jena/reasoner/test/WGReasonerTester.java    |  399 +
 .../apache/jena/regression/TestCaseBasic.java   |   78 +
 .../jena/shared/AbstractTestPrefixMapping.java  |  469 ++
 .../jena/shared/RandomizedTestCaseBasic.java    |   43 +
 .../apache/jena/shared/TestJenaException.java   |   43 +
 .../apache/jena/shared/TestPrefixMapping.java   |   66 +
 .../apache/jena/shared/TestSharedPackage.java   |   35 +
 .../org/apache/jena/shared/uuid/TestBits.java   |  457 ++
 .../org/apache/jena/shared/uuid/TestUUID.java   |  202 +
 .../apache/jena/shared/uuid/TestUUID_JRE.java   |  125 +
 .../apache/jena/shared/uuid/UUIDTestSuite.java  |   42 +
 .../java/org/apache/jena/test/JenaTest.java     |   26 +
 .../java/org/apache/jena/test/JenaTestBase.java |  206 +
 .../java/org/apache/jena/test/TestPackage.java  |   70 +
 .../org/apache/jena/test/TestSystemSetup.java   |   39 +
 .../AbstractGraphProducer.java                  |  105 +
 .../AbstractInfModelProducer.java               |   91 +
 .../AbstractModelProducer.java                  |   89 +
 .../AbstractRecordingListener.java              |  190 +
 .../GraphEventManagerProducerInterface.java     |   35 +
 .../jena/testing_framework/GraphHelper.java     |  508 ++
 .../testing_framework/IContainerProducer.java   |   37 +
 .../testing_framework/IIteratorProducer.java    |   60 +
 .../jena/testing_framework/INodeProducer.java   |   39 +
 .../testing_framework/IResourceProducer.java    |   28 +
 .../testing_framework/IStatementProducer.java   |   45 +
 .../testing_framework/ITripleStoreProducer.java |   35 +
 .../jena/testing_framework/ModelHelper.java     |  401 +
 .../jena/testing_framework/NodeCreateUtils.java |  177 +
 .../NodeProducerInterface.java                  |   32 +
 .../jena/testing_framework/TestFileData.java    |  398 +
 .../jena/testing_framework/TestUtils.java       |  320 +
 .../testing_framework/manifest/Manifest.java    |  228 +
 .../manifest/ManifestException.java             |   48 +
 .../manifest/ManifestFile.java                  |   38 +
 .../manifest/ManifestItem.java                  |   71 +
 .../manifest/ManifestItemHandler.java           |   32 +
 .../manifest/ManifestSuite.java                 |  143 +
 .../manifest/ManifestTest.java                  |   31 +
 .../manifest/ManifestTestRunner.java            |   93 +
 .../jena/testing_framework/package-info.java    |  109 +
 .../testing_framework/tuples/TupleItem.java     |   84 +
 .../jena/testing_framework/tuples/TupleSet.java |  274 +
 .../apache/jena/util/TestCollectionFactory.java |   70 +
 .../org/apache/jena/util/TestFileManager.java   |  238 +
 .../org/apache/jena/util/TestFileUtils.java     |  228 +
 .../jena/util/TestIteratorCollection.java       |  136 +
 .../apache/jena/util/TestLocationMapper.java    |  178 +
 .../java/org/apache/jena/util/TestLocators.java |   99 +
 .../java/org/apache/jena/util/TestMonitors.java |  189 +
 .../org/apache/jena/util/TestOneToManyMap.java  |  355 +
 .../java/org/apache/jena/util/TestPackage.java  |   60 +
 .../org/apache/jena/util/TestPrintUtil.java     |   64 +
 .../org/apache/jena/util/TestSplitIRI_TTL.java  |  160 +
 .../org/apache/jena/util/TestSplitIRI_XML.java  |  138 +
 .../org/apache/jena/util/TestTokenizer.java     |   79 +
 .../iterator/test/LoggingClosableIterator.java  |   41 +
 .../jena/util/iterator/test/TestAndThen.java    |  150 +
 .../util/iterator/test/TestAsCollection.java    |   61 +
 .../jena/util/iterator/test/TestFilters.java    |   48 +
 .../util/iterator/test/TestMapIterators.java    |   38 +
 .../util/iterator/test/TestNullIterator.java    |   48 +
 .../jena/util/iterator/test/TestPackage.java    |   39 +
 .../util/iterator/test/TestResourceUtils.java   |  262 +
 .../util/iterator/test/TestWrappedIterator.java |   70 +
 .../org/apache/jena/util/junit/Manifest.java    |  180 +
 .../jena/util/junit/ManifestItemHandler.java    |   32 +
 .../apache/jena/util/junit/TestException.java   |   32 +
 .../jena/util/junit/TestFactoryManifest.java    |   95 +
 .../org/apache/jena/util/junit/TestUtils.java   |  102 +
 .../vocabulary/test/TestOWL2Vocabulary.java     |  170 +
 .../jena/vocabulary/test/TestVocabDB.java       |   65 +
 .../jena/vocabulary/test/TestVocabDC10.java     |   51 +
 .../jena/vocabulary/test/TestVocabRDF.java      |   97 +
 .../jena/vocabulary/test/TestVocabRDFS.java     |   72 +
 .../jena/vocabulary/test/TestVocabRSS.java      |   46 +
 .../jena/vocabulary/test/TestVocabVCARD.java    |   91 +
 .../jena/vocabulary/test/TestVocabularies.java  |   43 +
 .../jena/vocabulary/test/VocabTestBase.java     |   34 +
 .../test/resources/jena-test-log4j.properties   |   16 +-
 .../reasoners/bugs/layeredValidation.owl        |    2 +-
 .../error001.rdf                                |    1 -
 .../error002.rdf                                |    1 -
 .../rdf-containers-syntax-vs-schema/test001.rdf |    1 -
 .../rdf-containers-syntax-vs-schema/test002.rdf |    1 -
 .../rdf-containers-syntax-vs-schema/test003.rdf |    1 -
 .../rdf-containers-syntax-vs-schema/test004.rdf |    1 -
 .../rdf-containers-syntax-vs-schema/test006.rdf |    1 -
 .../rdf-containers-syntax-vs-schema/test007.rdf |    1 -
 .../rdf-containers-syntax-vs-schema/test008.rdf |    1 -
 .../wg/rdfms-duplicate-member-props/test001.rdf |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test001.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test002.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test003.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test004.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test005.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test006.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test007.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test008.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test009.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test010.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test011.rdf  |    1 -
 .../testing/wg/rdfms-nested-bagIDs/test012.rdf  |    1 -
 .../rdfms-not-id-and-resource-attr/test001.rdf  |    1 -
 .../rdfms-not-id-and-resource-attr/test002.rdf  |    1 -
 .../rdfms-not-id-and-resource-attr/test003.rdf  |    1 -
 .../rdfms-not-id-and-resource-attr/test004.rdf  |    1 -
 .../rdfms-not-id-and-resource-attr/test005.rdf  |    1 -
 jena-core/testing/wg/rdfms-para196/test001.rdf  |    1 -
 jena-csv/ReleaseNotes.txt                       |   14 -
 jena-csv/pom.xml                                |   11 +-
 .../org/apache/jena/propertytable/Column.java   |    2 +-
 .../jena/propertytable/PropertyTable.java       |    6 +-
 .../java/org/apache/jena/propertytable/Row.java |    6 +-
 .../propertytable/graph/GraphPropertyTable.java |   27 +-
 .../graph/QueryIterPropertyTable.java           |   35 +-
 .../graph/QueryIterPropertyTableRow.java        |   32 +-
 .../jena/propertytable/graph/RowMatch.java      |    4 +-
 .../graph/StageGeneratorPropertyTable.java      |   10 +-
 .../jena/propertytable/impl/ColumnImpl.java     |    3 +-
 .../impl/PropertyTableArrayImpl.java            |    9 +-
 .../impl/PropertyTableBuilder.java              |    7 +-
 .../impl/PropertyTableHashMapImpl.java          |   30 +-
 .../apache/jena/propertytable/lang/LangCSV.java |    9 +-
 .../propertytable/lang/ReaderRIOTLangCSV.java   |    3 +-
 .../apache/jena/propertytable/util/IRILib.java  |  264 -
 jena-csv/src/main/java/riotcmdx/csv2rdf.java    |    5 +-
 .../jena/propertytable/AbstractColumnTest.java  |    5 +-
 .../AbstractPropertyTableTest.java              |    3 +-
 .../jena/propertytable/AbstractRowTest.java     |    5 +-
 .../org/apache/jena/propertytable/BaseTest.java |    4 +-
 .../jena/propertytable/graph/GraphCSVTest.java  |   15 +-
 .../impl/AbstractPropertyTableBuilderTest.java  |    5 +-
 .../jena/propertytable/lang/TestLangCSV.java    |    5 +-
 jena-csv/src/test/resources/log4j.properties    |    9 +-
 jena-elephas/jena-elephas-common/pom.xml        |   75 +-
 .../rdf/types/AbstractNodeTupleWritable.java    |    5 +-
 .../rdf/types/CharacteristicSetWritable.java    |    7 +-
 .../rdf/types/CharacteristicWritable.java       |    5 +-
 .../hadoop/rdf/types/NodeTupleWritable.java     |    6 +-
 .../jena/hadoop/rdf/types/NodeWritable.java     |    6 +-
 .../jena/hadoop/rdf/types/QuadWritable.java     |    5 +-
 .../jena/hadoop/rdf/types/TripleWritable.java   |    5 +-
 .../rdf/io/types/CharacteristicTests.java       |    7 +-
 .../jena/hadoop/rdf/io/types/RdfTypesTest.java  |   11 +-
 .../src/test/resources/log4j.properties         |    9 +-
 jena-elephas/jena-elephas-io/pom.xml            |   28 +-
 .../hadoop/rdf/io/input/QuadsInputFormat.java   |    5 +-
 .../hadoop/rdf/io/input/TriplesInputFormat.java |    5 +-
 .../rdf/io/input/TriplesOrQuadsInputFormat.java |    5 +-
 .../io/input/jsonld/JsonLDQuadInputFormat.java  |    5 +-
 .../input/jsonld/JsonLDTripleInputFormat.java   |    5 +-
 .../input/nquads/BlockedNQuadsInputFormat.java  |    5 +-
 .../rdf/io/input/nquads/NQuadsInputFormat.java  |    5 +-
 .../nquads/WholeFileNQuadsInputFormat.java      |    5 +-
 .../ntriples/BlockedNTriplesInputFormat.java    |    5 +-
 .../io/input/ntriples/NTriplesInputFormat.java  |    5 +-
 .../ntriples/WholeFileNTriplesInputFormat.java  |    5 +-
 .../io/input/rdfjson/RdfJsonInputFormat.java    |    5 +-
 .../rdf/io/input/rdfxml/RdfXmlInputFormat.java  |    5 +-
 .../AbstractBlockBasedNodeTupleReader.java      |   10 +-
 .../readers/AbstractBlockBasedQuadReader.java   |    3 +-
 .../readers/AbstractBlockBasedTripleReader.java |    3 +-
 .../AbstractLineBasedNodeTupleReader.java       |   12 +-
 .../readers/AbstractLineBasedQuadReader.java    |    4 +-
 .../readers/AbstractLineBasedTripleReader.java  |    4 +-
 .../AbstractWholeFileNodeTupleReader.java       |   10 +-
 .../readers/AbstractWholeFileQuadReader.java    |    3 +-
 .../readers/AbstractWholeFileTripleReader.java  |    3 +-
 .../rdf/io/input/readers/QuadsReader.java       |    3 +-
 .../io/input/readers/TriplesOrQuadsReader.java  |    5 +-
 .../rdf/io/input/readers/TriplesReader.java     |    3 +-
 .../io/input/readers/TriplesToQuadsReader.java  |    7 +-
 .../io/input/readers/nquads/NQuadsReader.java   |    5 +-
 .../input/readers/ntriples/NTriplesReader.java  |    5 +-
 .../io/input/thrift/ThriftQuadInputFormat.java  |    5 +-
 .../input/thrift/ThriftTripleInputFormat.java   |    5 +-
 .../rdf/io/input/trig/TriGInputFormat.java      |    5 +-
 .../rdf/io/input/trix/TriXInputFormat.java      |    5 +-
 .../rdf/io/input/turtle/TurtleInputFormat.java  |    5 +-
 .../io/input/util/TrackedPipedQuadsStream.java  |    5 +-
 .../input/util/TrackedPipedTriplesStream.java   |    5 +-
 .../rdf/io/output/AbstractNodeOutputFormat.java |    4 +-
 .../output/AbstractNodeTupleOutputFormat.java   |    4 +-
 .../hadoop/rdf/io/output/QuadsOutputFormat.java |    3 +-
 .../io/output/TriplesOrQuadsOutputFormat.java   |    3 +-
 .../rdf/io/output/TriplesOutputFormat.java      |    3 +-
 .../output/jsonld/JsonLDQuadOutputFormat.java   |    3 +-
 .../output/jsonld/JsonLDTripleOutputFormat.java |    3 +-
 .../io/output/nquads/NQuadsOutputFormat.java    |    5 +-
 .../output/ntriples/NTriplesOutputFormat.java   |    5 +-
 .../io/output/rdfjson/RdfJsonOutputFormat.java  |    5 +-
 .../io/output/rdfxml/RdfXmlOutputFormat.java    |    5 +-
 .../output/thrift/ThriftQuadOutputFormat.java   |    2 +-
 .../output/thrift/ThriftTripleOutputFormat.java |    3 +-
 .../io/output/trig/BatchedTriGOutputFormat.java |    3 +-
 .../rdf/io/output/trig/TriGOutputFormat.java    |    3 +-
 .../rdf/io/output/trix/TriXOutputFormat.java    |    2 +-
 .../turtle/BatchedTurtleOutputFormat.java       |    3 +-
 .../io/output/turtle/TurtleOutputFormat.java    |    3 +-
 .../writers/AbstractBatchedNodeTupleWriter.java |    4 +-
 .../writers/AbstractBatchedQuadWriter.java      |   11 +-
 .../writers/AbstractBatchedTripleWriter.java    |    9 +-
 .../AbstractLineBasedNodeTupleWriter.java       |   10 +-
 .../writers/AbstractLineBasedQuadWriter.java    |    7 +-
 .../writers/AbstractLineBasedTripleWriter.java  |    5 +-
 .../io/output/writers/AbstractNodeWriter.java   |   12 +-
 .../AbstractStreamRdfNodeTupleWriter.java       |    6 +-
 .../AbstractWholeFileNodeTupleWriter.java       |    4 +-
 .../writers/AbstractWholeFileQuadWriter.java    |    9 +-
 .../writers/AbstractWholeFileTripleWriter.java  |    9 +-
 .../io/output/writers/StreamRdfQuadWriter.java  |    3 +-
 .../output/writers/StreamRdfTripleWriter.java   |    3 +-
 .../registry/readers/JsonLDReaderFactory.java   |    6 +-
 .../registry/readers/NQuadsReaderFactory.java   |    4 +-
 .../registry/readers/NTriplesReaderFactory.java |    3 +-
 .../registry/readers/RdfJsonReaderFactory.java  |    4 +-
 .../registry/readers/RdfXmlReaderFactory.java   |    4 +-
 .../registry/readers/ThriftReaderFactory.java   |    6 +-
 .../io/registry/readers/TriGReaderFactory.java  |    4 +-
 .../io/registry/readers/TriXReaderFactory.java  |    4 +-
 .../registry/readers/TurtleReaderFactory.java   |    4 +-
 .../registry/writers/JsonLDWriterFactory.java   |    7 +-
 .../registry/writers/NQuadsWriterFactory.java   |    4 +-
 .../registry/writers/NTriplesWriterFactory.java |    4 +-
 .../registry/writers/RdfJsonWriterFactory.java  |    4 +-
 .../registry/writers/RdfXmlWriterFactory.java   |    4 +-
 .../registry/writers/ThriftWriterFactory.java   |    7 +-
 .../io/registry/writers/TriGWriterFactory.java  |    4 +-
 .../io/registry/writers/TriXWriterFactory.java  |    4 +-
 .../registry/writers/TurtleWriterFactory.java   |    4 +-
 .../AbstractNodeTupleInputFormatTests.java      |   25 +-
 .../io/input/AbstractQuadsInputFormatTests.java |    3 +-
 .../input/AbstractTriplesInputFormatTests.java  |    3 +-
 .../AbstractWholeFileQuadInputFormatTests.java  |   19 +-
 ...AbstractWholeFileTripleInputFormatTests.java |   13 +-
 .../io/input/bnodes/AbstractBlankNodeTests.java |    7 +-
 .../bnodes/AbstractTripleBlankNodeTests.java    |    9 +-
 ...AbstractCompressedQuadsInputFormatTests.java |    3 +-
 ...stractCompressedTriplesInputFormatTests.java |    3 +-
 ...CompressedWholeFileQuadInputFormatTests.java |   19 +-
 ...mpressedWholeFileTripleInputFormatTests.java |   11 +-
 .../output/AbstractQuadOutputFormatTests.java   |    7 +-
 .../output/AbstractTripleOutputFormatTests.java |    7 +-
 .../output/trig/TriGBlankNodeOutputTests.java   |   15 +-
 .../turtle/TurtleBlankNodeOutputTests.java      |   15 +-
 jena-elephas/jena-elephas-mapreduce/pom.xml     |  136 +-
 .../QuadCharacteristicSetGeneratingReducer.java |    3 +-
 ...ripleCharacteristicSetGeneratingReducer.java |    3 +-
 .../mapreduce/count/QuadNodeCountMapper.java    |    3 +-
 .../mapreduce/count/TripleNodeCountMapper.java  |    3 +-
 .../datatypes/QuadDataTypeCountMapper.java      |    5 +-
 .../datatypes/TripleDataTypeCountMapper.java    |    5 +-
 .../AbstractNodeTupleNamespaceCountMapper.java  |    5 +-
 .../namespaces/QuadNamespaceCountMapper.java    |    3 +-
 .../namespaces/TripleNamespaceCountMapper.java  |    3 +-
 .../filter/AbstractQuadFilterMapper.java        |    3 +-
 .../filter/AbstractTripleFilterMapper.java      |    3 +-
 .../filter/GroundQuadFilterMapper.java          |    3 +-
 .../filter/GroundTripleFilterMapper.java        |    3 +-
 .../mapreduce/filter/ValidQuadFilterMapper.java |    3 +-
 .../filter/ValidTripleFilterMapper.java         |    3 +-
 .../AbstractQuadFilterByPositionMapper.java     |    5 +-
 .../AbstractTripleFilterByPositionMapper.java   |    5 +-
 .../positional/QuadFilterByGraphUriMapper.java  |    5 +-
 .../positional/QuadFilterByObjectUriMapper.java |    5 +-
 .../positional/QuadFilterByPredicateMapper.java |    5 +-
 .../QuadFilterBySubjectUriMapper.java           |    5 +-
 .../TripleFilterByObjectUriMapper.java          |    5 +-
 .../TripleFilterByPredicateUriMapper.java       |    5 +-
 .../TripleFilterBySubjectUriMapper.java         |    5 +-
 .../group/AbstractQuadGroupingMapper.java       |    3 +-
 .../group/AbstractTripleGroupingMapper.java     |    3 +-
 .../mapreduce/group/QuadGroupByGraphMapper.java |    3 +-
 .../group/QuadGroupByObjectMapper.java          |    3 +-
 .../group/QuadGroupByPredicateMapper.java       |    3 +-
 .../group/QuadGroupBySubjectMapper.java         |    3 +-
 .../group/TripleGroupByObjectMapper.java        |    3 +-
 .../group/TripleGroupByPredicateMapper.java     |    3 +-
 .../group/TripleGroupBySubjectMapper.java       |    3 +-
 .../mapreduce/split/QuadSplitToNodesMapper.java |    3 +-
 .../split/QuadSplitWithNodesMapper.java         |    3 +-
 .../split/TripleSplitToNodesMapper.java         |    3 +-
 .../split/TripleSplitWithNodesMapper.java       |    3 +-
 .../transform/AbstractTriplesToQuadsMapper.java |    9 +-
 .../TriplesToQuadsBySubjectMapper.java          |    4 +-
 .../TriplesToQuadsConstantGraphMapper.java      |    8 +-
 .../rdf/mapreduce/TestDistinctTriples.java      |    7 +-
 ...CharacteristicSetGeneratingReducerTests.java |    5 +-
 .../CharacteristicSetReducerTest.java           |    5 +-
 ...eCharacteristicSetGeneratingReducerTest.java |    7 +-
 .../count/QuadNodeCountMapReduceTest.java       |    9 +-
 .../count/QuadNodeCountMapperTest.java          |    9 +-
 .../count/TripleNodeCountMapReduceTest.java     |    7 +-
 .../count/TripleNodeCountMapperTest.java        |    7 +-
 .../filter/AbstractQuadValidityFilterTests.java |    7 +-
 .../AbstractTripleValidityFilterTests.java      |    7 +-
 .../TripleFilterByPredicateMapperTest.java      |   11 +-
 ...ipleInvertedFilterByPredicateMapperTest.java |   11 +-
 .../group/AbstractQuadGroupingTests.java        |    9 +-
 .../group/AbstractTripleGroupingTests.java      |    7 +-
 .../split/AbstractQuadSplitToNodesTests.java    |    9 +-
 .../split/AbstractQuadSplitWithNodesTests.java  |    9 +-
 .../split/AbstractTripleSplitToNodesTests.java  |    7 +-
 .../AbstractTripleSplitWithNodesTests.java      |    7 +-
 .../transform/QuadsToTriplesMapperTest.java     |   11 +-
 .../TriplesToQuadsBySubjectMapperTest.java      |   11 +-
 .../TriplesToQuadsConstantGraphMapperTest.java  |   11 +-
 jena-elephas/jena-elephas-stats/pom.xml         |    7 +-
 .../apache/jena/hadoop/rdf/stats/RdfStats.java  |   17 +-
 .../jena/hadoop/rdf/stats/jobs/JobFactory.java  |    5 +-
 jena-elephas/pom.xml                            |   11 +-
 jena-extras/jena-querybuilder/pom.xml           |   16 +-
 .../arq/querybuilder/AbstractQueryBuilder.java  |   50 +-
 .../jena/arq/querybuilder/AskBuilder.java       |   19 +-
 .../jena/arq/querybuilder/ConstructBuilder.java |   38 +-
 .../jena/arq/querybuilder/SelectBuilder.java    |   45 +-
 .../querybuilder/clauses/ConstructClause.java   |    5 +-
 .../arq/querybuilder/clauses/PrologClause.java  |    5 +-
 .../arq/querybuilder/clauses/SelectClause.java  |   37 +-
 .../clauses/SolutionModifierClause.java         |    3 +-
 .../arq/querybuilder/clauses/WhereClause.java   |   27 +-
 .../querybuilder/handlers/ConstructHandler.java |   13 +-
 .../querybuilder/handlers/DatasetHandler.java   |   55 +-
 .../jena/arq/querybuilder/handlers/Handler.java |    5 +-
 .../querybuilder/handlers/PrologHandler.java    |    8 +-
 .../querybuilder/handlers/SelectHandler.java    |   61 +-
 .../handlers/SolutionModifierHandler.java       |   47 +-
 .../arq/querybuilder/handlers/WhereHandler.java |  109 +-
 .../rewriters/AbstractRewriter.java             |   18 +-
 .../querybuilder/rewriters/ElementRewriter.java |   34 +-
 .../querybuilder/rewriters/ExprRewriter.java    |   25 +-
 .../rewriters/NodeValueRewriter.java            |   18 +-
 .../arq/querybuilder/rewriters/OpRewriter.java  |   62 +-
 .../querybuilder/rewriters/PathRewriter.java    |   25 +-
 .../jena/arq/AbstractRegexpBasedTest.java       |   11 +-
 .../querybuilder/AbstractQueryBuilderTest.java  |   20 +-
 .../arq/querybuilder/SelectBuilderTest.java     |   37 +-
 .../clauses/AbstractClauseTest.java             |    3 +-
 .../querybuilder/clauses/DatasetClauseTest.java |    6 +-
 .../querybuilder/clauses/PrologClauseTest.java  |    6 +-
 .../querybuilder/clauses/SelectClauseTest.java  |   37 +-
 .../clauses/SolutionModifierTest.java           |    6 +-
 .../querybuilder/clauses/WhereClauseTest.java   |  155 +-
 .../handlers/ConstructHandlerTest.java          |   14 +-
 .../handlers/DatasetHandlerTest.java            |    9 +-
 .../handlers/PrologHandlerTest.java             |   15 +-
 .../handlers/SelectHandlerTest.java             |   30 +-
 .../handlers/SolutionModifierHandlerTest.java   |   11 +-
 .../querybuilder/handlers/WhereHandlerTest.java |  138 +-
 jena-extras/pom.xml                             |  238 +-
 jena-fuseki/.gitignore                          |    1 -
 jena-fuseki/DEPENDENCIES                        |   21 -
 jena-fuseki/Data/books.ttl                      |   62 -
 jena-fuseki/Data/test_abox.ttl                  |   21 -
 jena-fuseki/Data/test_data_rdfs.ttl             |   28 -
 jena-fuseki/Data/test_tbox.ttl                  |   25 -
 jena-fuseki/LICENSE                             |  224 -
 jena-fuseki/NOTICE                              |   16 -
 jena-fuseki/ReleaseNotes.txt                    |  104 -
 jena-fuseki/SEE_FUSEKI2                         |    0
 jena-fuseki/assembly-dist.xml                   |   82 -
 jena-fuseki/assembly-soh.xml                    |   41 -
 jena-fuseki/config-examples.ttl                 |  123 -
 jena-fuseki/config-inf-tdb.ttl                  |   52 -
 jena-fuseki/config-tdb-text.ttl                 |   93 -
 jena-fuseki/config-tdb.ttl                      |   72 -
 jena-fuseki/config.ttl                          |   65 -
 jena-fuseki/dist/ABOUT                          |    1 -
 jena-fuseki/dist/LICENSE                        |  548 --
 jena-fuseki/dist/NOTICE                         |  216 -
 jena-fuseki/fuseki                              |  399 -
 jena-fuseki/fuseki-server                       |   61 -
 jena-fuseki/fuseki-server.bat                   |   19 -
 jena-fuseki/jetty-fuseki.xml                    |   47 -
 jena-fuseki/make_cp_mvn                         |   51 -
 jena-fuseki/make_links                          |   10 -
 jena-fuseki/pages/books.ttl                     |   47 -
 jena-fuseki/pages/control-panel.tpl             |   41 -
 jena-fuseki/pages/data-validator.html           |   67 -
 jena-fuseki/pages/favicon.ico                   |  Bin 1085 -> 0 bytes
 jena-fuseki/pages/fuseki.css                    |  148 -
 jena-fuseki/pages/fuseki.html                   |   55 -
 jena-fuseki/pages/iri-validator.html            |   38 -
 jena-fuseki/pages/ping.txt                      |    1 -
 jena-fuseki/pages/query-validator.html          |   71 -
 jena-fuseki/pages/robots.txt                    |    2 -
 jena-fuseki/pages/sparql.html                   |   68 -
 jena-fuseki/pages/sparql.tpl                    |   96 -
 jena-fuseki/pages/update-validator.html         |   62 -
 jena-fuseki/pages/xml-to-html-links.xsl         |  227 -
 jena-fuseki/pages/xml-to-html-plain.xsl         |  187 -
 jena-fuseki/pages/xml-to-html.xsl               |  187 -
 jena-fuseki/pom.xml                             |  374 -
 jena-fuseki/run-fuseki                          |   64 -
 jena-fuseki/s-delete                            |  713 --
 jena-fuseki/s-get                               |  713 --
 jena-fuseki/s-head                              |  713 --
 jena-fuseki/s-post                              |  713 --
 jena-fuseki/s-put                               |  713 --
 jena-fuseki/s-query                             |  713 --
 jena-fuseki/s-update                            |  713 --
 jena-fuseki/s-update-form                       |  713 --
 jena-fuseki/soh                                 |  713 --
 jena-fuseki/src-dev/dev/RunFuseki.java          |   90 -
 .../main/java/org/apache/jena/fuseki/DEF.java   |   66 -
 .../jena/fuseki/EmbeddedFusekiServer.java       |   86 -
 .../java/org/apache/jena/fuseki/Fuseki.java     |  174 -
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |  508 --
 .../jena/fuseki/FusekiConfigException.java      |   28 -
 .../org/apache/jena/fuseki/FusekiException.java |   29 -
 .../java/org/apache/jena/fuseki/FusekiLib.java  |  148 -
 .../jena/fuseki/FusekiNotFoundException.java    |   26 -
 .../jena/fuseki/FusekiRequestException.java     |   57 -
 .../java/org/apache/jena/fuseki/HttpNames.java  |   94 -
 .../main/java/org/apache/jena/fuseki/Test.java  |   25 -
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |  205 -
 .../org/apache/jena/fuseki/conneg/WebLib.java   |   60 -
 .../apache/jena/fuseki/mgt/ActionBackup.java    |  196 -
 .../apache/jena/fuseki/mgt/ActionDataset.java   |  121 -
 .../jena/fuseki/mgt/ManagementServer.java       |   99 -
 .../apache/jena/fuseki/mgt/MgtCmdServlet.java   |  169 -
 .../apache/jena/fuseki/mgt/MgtFunctions.java    |  180 -
 .../org/apache/jena/fuseki/mgt/PageNames.java   |   33 -
 .../org/apache/jena/fuseki/mgt/PingServlet.java |   75 -
 .../apache/jena/fuseki/mgt/StatsServlet.java    |  171 -
 .../jena/fuseki/migrate/GraphLoadUtils.java     |   76 -
 .../apache/jena/fuseki/migrate/Registry.java    |   42 -
 .../jena/fuseki/migrate/SinkRDFLimited.java     |   55 -
 .../org/apache/jena/fuseki/server/Counter.java  |   34 -
 .../jena/fuseki/server/CounterMXBean.java       |   25 -
 .../apache/jena/fuseki/server/CounterName.java  |   83 -
 .../apache/jena/fuseki/server/CounterSet.java   |   70 -
 .../org/apache/jena/fuseki/server/Counters.java |   25 -
 .../jena/fuseki/server/DatasetMXBean.java       |   35 -
 .../apache/jena/fuseki/server/DatasetRef.java   |  241 -
 .../jena/fuseki/server/DatasetRegistry.java     |   30 -
 .../apache/jena/fuseki/server/FusekiConfig.java |  374 -
 .../jena/fuseki/server/FusekiErrorHandler.java  |   92 -
 .../server/FusekiServletContextListener.java    |   43 -
 .../apache/jena/fuseki/server/FusekiVocab.java  |   62 -
 .../apache/jena/fuseki/server/SPARQLServer.java |  484 --
 .../apache/jena/fuseki/server/ServerConfig.java |   55 -
 .../jena/fuseki/server/ServiceMXBean.java       |   32 -
 .../apache/jena/fuseki/server/ServiceRef.java   |   63 -
 .../fuseki/servlets/ActionErrorException.java   |   32 -
 .../fuseki/servlets/ConcurrencyPolicyMRSW.java  |  113 -
 .../jena/fuseki/servlets/DumpServlet.java       |  313 -
 .../apache/jena/fuseki/servlets/HttpAction.java |  290 -
 .../servlets/HttpServletResponseTracker.java    |  140 -
 .../jena/fuseki/servlets/NullOutputStream.java  |   53 -
 .../apache/jena/fuseki/servlets/REST_Quads.java |  211 -
 .../jena/fuseki/servlets/ResponseCallback.java  |   24 -
 .../jena/fuseki/servlets/ResponseModel.java     |  143 -
 .../jena/fuseki/servlets/ResponseOps.java       |   94 -
 .../jena/fuseki/servlets/ResponseResultSet.java |  320 -
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |  101 -
 .../jena/fuseki/servlets/SPARQL_Query.java      |  387 -
 .../fuseki/servlets/SPARQL_QueryDataset.java    |   60 -
 .../fuseki/servlets/SPARQL_QueryGeneral.java    |  143 -
 .../jena/fuseki/servlets/SPARQL_REST.java       |  354 -
 .../jena/fuseki/servlets/SPARQL_REST_R.java     |  128 -
 .../jena/fuseki/servlets/SPARQL_REST_RW.java    |  232 -
 .../fuseki/servlets/SPARQL_ServletBase.java     |  458 --
 .../fuseki/servlets/SPARQL_UberServlet.java     |  338 -
 .../jena/fuseki/servlets/SPARQL_Update.java     |  308 -
 .../jena/fuseki/servlets/SPARQL_Upload.java     |  260 -
 .../jena/fuseki/servlets/ServletBase.java       |  242 -
 .../jena/fuseki/servlets/SimpleVelocity.java    |   78 -
 .../fuseki/servlets/SimpleVelocityServlet.java  |  178 -
 .../jena/fuseki/validation/DataValidator.java   |  237 -
 .../jena/fuseki/validation/IRIValidator.java    |   99 -
 .../jena/fuseki/validation/QueryValidator.java  |  269 -
 .../jena/fuseki/validation/UpdateValidator.java |  174 -
 .../jena/fuseki/validation/ValidatorBase.java   |  120 -
 .../src/main/resources/META-INF/DEPENDENCIES    |   24 -
 jena-fuseki/src/main/resources/META-INF/LICENSE |  202 -
 jena-fuseki/src/main/resources/META-INF/NOTICE  |   16 -
 .../apache/jena/fuseki/fuseki-properties.xml    |    8 -
 .../java/org/apache/jena/fuseki/ServerTest.java |  111 -
 .../java/org/apache/jena/fuseki/TS_Fuseki.java  |   61 -
 .../java/org/apache/jena/fuseki/TestAuth.java   |  420 --
 .../java/org/apache/jena/fuseki/TestQuery.java  |  117 -
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |   95 -
 .../fuseki/http/TestDatasetAccessorHTTP.java    |  261 -
 .../http/TestDatasetGraphAccessorHTTP.java      |   43 -
 .../org/apache/jena/fuseki/http/TestHttpOp.java |  214 -
 jena-fuseki/src/test/resources/log4j.properties |   20 -
 jena-fuseki/tdb.ttl                             |   30 -
 jena-fuseki1/.gitignore                         |    1 +
 jena-fuseki1/DEPENDENCIES                       |   21 +
 jena-fuseki1/Data/books.ttl                     |   62 +
 jena-fuseki1/Data/test_abox.ttl                 |   21 +
 jena-fuseki1/Data/test_data_rdfs.ttl            |   28 +
 jena-fuseki1/Data/test_tbox.ttl                 |   25 +
 jena-fuseki1/LICENSE                            |  224 +
 jena-fuseki1/NOTICE                             |   16 +
 jena-fuseki1/SEE_FUSEKI2                        |    0
 jena-fuseki1/assembly-dist.xml                  |   82 +
 jena-fuseki1/assembly-soh.xml                   |   41 +
 jena-fuseki1/config-examples.ttl                |  123 +
 jena-fuseki1/config-inf-tdb.ttl                 |   52 +
 jena-fuseki1/config-tdb-text.ttl                |   93 +
 jena-fuseki1/config-tdb.ttl                     |   72 +
 jena-fuseki1/config.ttl                         |   65 +
 jena-fuseki1/dist/ABOUT                         |    1 +
 jena-fuseki1/dist/LICENSE                       |  548 ++
 jena-fuseki1/dist/NOTICE                        |  216 +
 jena-fuseki1/fuseki                             |  399 +
 jena-fuseki1/fuseki-server                      |   61 +
 jena-fuseki1/fuseki-server.bat                  |   19 +
 jena-fuseki1/jetty-fuseki.xml                   |   47 +
 jena-fuseki1/make_cp_mvn                        |   52 +
 jena-fuseki1/make_links                         |   10 +
 jena-fuseki1/pages/books.ttl                    |   47 +
 jena-fuseki1/pages/control-panel.tpl            |   41 +
 jena-fuseki1/pages/data-validator.html          |   67 +
 jena-fuseki1/pages/favicon.ico                  |  Bin 0 -> 1085 bytes
 jena-fuseki1/pages/fuseki.css                   |  148 +
 jena-fuseki1/pages/fuseki.html                  |   55 +
 jena-fuseki1/pages/iri-validator.html           |   38 +
 jena-fuseki1/pages/ping.txt                     |    1 +
 jena-fuseki1/pages/query-validator.html         |   71 +
 jena-fuseki1/pages/robots.txt                   |    2 +
 jena-fuseki1/pages/sparql.html                  |   68 +
 jena-fuseki1/pages/sparql.tpl                   |   96 +
 jena-fuseki1/pages/update-validator.html        |   62 +
 jena-fuseki1/pages/xml-to-html-links.xsl        |  227 +
 jena-fuseki1/pages/xml-to-html-plain.xsl        |  187 +
 jena-fuseki1/pages/xml-to-html.xsl              |  187 +
 jena-fuseki1/pom.xml                            |  374 +
 jena-fuseki1/run-fuseki                         |   64 +
 jena-fuseki1/s-delete                           |  713 ++
 jena-fuseki1/s-get                              |  713 ++
 jena-fuseki1/s-head                             |  713 ++
 jena-fuseki1/s-post                             |  713 ++
 jena-fuseki1/s-put                              |  713 ++
 jena-fuseki1/s-query                            |  713 ++
 jena-fuseki1/s-update                           |  713 ++
 jena-fuseki1/s-update-form                      |  713 ++
 jena-fuseki1/soh                                |  713 ++
 .../main/java/org/apache/jena/fuseki/DEF.java   |   66 +
 .../jena/fuseki/EmbeddedFusekiServer.java       |   85 +
 .../java/org/apache/jena/fuseki/Fuseki.java     |  173 +
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |  507 ++
 .../jena/fuseki/FusekiConfigException.java      |   28 +
 .../org/apache/jena/fuseki/FusekiException.java |   29 +
 .../java/org/apache/jena/fuseki/FusekiLib.java  |  147 +
 .../jena/fuseki/FusekiNotFoundException.java    |   26 +
 .../jena/fuseki/FusekiRequestException.java     |   57 +
 .../java/org/apache/jena/fuseki/HttpNames.java  |   94 +
 .../main/java/org/apache/jena/fuseki/Test.java  |   25 +
 .../org/apache/jena/fuseki/conneg/ConNeg.java   |  205 +
 .../org/apache/jena/fuseki/conneg/WebLib.java   |   60 +
 .../apache/jena/fuseki/mgt/ActionBackup.java    |  192 +
 .../apache/jena/fuseki/mgt/ActionDataset.java   |  121 +
 .../jena/fuseki/mgt/ManagementServer.java       |   99 +
 .../apache/jena/fuseki/mgt/MgtCmdServlet.java   |  168 +
 .../apache/jena/fuseki/mgt/MgtFunctions.java    |  179 +
 .../org/apache/jena/fuseki/mgt/PageNames.java   |   33 +
 .../org/apache/jena/fuseki/mgt/PingServlet.java |   74 +
 .../apache/jena/fuseki/mgt/StatsServlet.java    |  171 +
 .../jena/fuseki/migrate/GraphLoadUtils.java     |   75 +
 .../apache/jena/fuseki/migrate/Registry.java    |   42 +
 .../jena/fuseki/migrate/SinkRDFLimited.java     |   54 +
 .../org/apache/jena/fuseki/server/Counter.java  |   34 +
 .../jena/fuseki/server/CounterMXBean.java       |   25 +
 .../apache/jena/fuseki/server/CounterName.java  |   83 +
 .../apache/jena/fuseki/server/CounterSet.java   |   70 +
 .../org/apache/jena/fuseki/server/Counters.java |   25 +
 .../jena/fuseki/server/DatasetMXBean.java       |   35 +
 .../apache/jena/fuseki/server/DatasetRef.java   |  240 +
 .../jena/fuseki/server/DatasetRegistry.java     |   30 +
 .../apache/jena/fuseki/server/FusekiConfig.java |  358 +
 .../jena/fuseki/server/FusekiErrorHandler.java  |   92 +
 .../server/FusekiServletContextListener.java    |   43 +
 .../apache/jena/fuseki/server/FusekiVocab.java  |   61 +
 .../apache/jena/fuseki/server/SPARQLServer.java |  483 ++
 .../apache/jena/fuseki/server/ServerConfig.java |   55 +
 .../jena/fuseki/server/ServiceMXBean.java       |   32 +
 .../apache/jena/fuseki/server/ServiceRef.java   |   63 +
 .../fuseki/servlets/ActionErrorException.java   |   32 +
 .../fuseki/servlets/ConcurrencyPolicyMRSW.java  |  113 +
 .../jena/fuseki/servlets/DumpServlet.java       |  313 +
 .../apache/jena/fuseki/servlets/HttpAction.java |  294 +
 .../servlets/HttpServletResponseTracker.java    |  140 +
 .../jena/fuseki/servlets/NullOutputStream.java  |   53 +
 .../apache/jena/fuseki/servlets/REST_Quads.java |  210 +
 .../jena/fuseki/servlets/ResponseCallback.java  |   24 +
 .../jena/fuseki/servlets/ResponseModel.java     |  142 +
 .../jena/fuseki/servlets/ResponseOps.java       |   94 +
 .../jena/fuseki/servlets/ResponseResultSet.java |  319 +
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |   92 +
 .../jena/fuseki/servlets/SPARQL_Query.java      |  386 +
 .../fuseki/servlets/SPARQL_QueryDataset.java    |   60 +
 .../fuseki/servlets/SPARQL_QueryGeneral.java    |  142 +
 .../jena/fuseki/servlets/SPARQL_REST.java       |  351 +
 .../jena/fuseki/servlets/SPARQL_REST_R.java     |  127 +
 .../jena/fuseki/servlets/SPARQL_REST_RW.java    |  231 +
 .../fuseki/servlets/SPARQL_ServletBase.java     |  457 ++
 .../fuseki/servlets/SPARQL_UberServlet.java     |  338 +
 .../jena/fuseki/servlets/SPARQL_Update.java     |  307 +
 .../jena/fuseki/servlets/SPARQL_Upload.java     |  259 +
 .../jena/fuseki/servlets/ServletBase.java       |  242 +
 .../jena/fuseki/servlets/SimpleVelocity.java    |   78 +
 .../fuseki/servlets/SimpleVelocityServlet.java  |  178 +
 .../jena/fuseki/validation/DataValidator.java   |  237 +
 .../jena/fuseki/validation/IRIValidator.java    |   99 +
 .../jena/fuseki/validation/QueryValidator.java  |  268 +
 .../jena/fuseki/validation/UpdateValidator.java |  173 +
 .../jena/fuseki/validation/ValidatorBase.java   |  120 +
 .../src/main/resources/META-INF/DEPENDENCIES    |   24 +
 .../src/main/resources/META-INF/LICENSE         |  202 +
 jena-fuseki1/src/main/resources/META-INF/NOTICE |   16 +
 .../apache/jena/fuseki/fuseki-properties.xml    |    8 +
 .../java/org/apache/jena/fuseki/ServerTest.java |  111 +
 .../java/org/apache/jena/fuseki/TS_Fuseki.java  |   61 +
 .../java/org/apache/jena/fuseki/TestAuth.java   |  428 ++
 .../java/org/apache/jena/fuseki/TestQuery.java  |  116 +
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |   90 +
 .../fuseki/http/TestDatasetAccessorHTTP.java    |  260 +
 .../http/TestDatasetGraphAccessorHTTP.java      |   43 +
 .../org/apache/jena/fuseki/http/TestHttpOp.java |  213 +
 .../src/test/resources/log4j.properties         |   20 +
 jena-fuseki1/tdb.ttl                            |   30 +
 jena-fuseki2/ReleaseNotes.txt                   |   19 -
 .../apache-jena-fuseki/assembly-dist.xml        |    2 -
 jena-fuseki2/apache-jena-fuseki/bin/s-delete    |   16 +-
 jena-fuseki2/apache-jena-fuseki/bin/s-get       |   16 +-
 jena-fuseki2/apache-jena-fuseki/bin/s-head      |   16 +-
 jena-fuseki2/apache-jena-fuseki/bin/s-post      |   16 +-
 jena-fuseki2/apache-jena-fuseki/bin/s-put       |   16 +-
 jena-fuseki2/apache-jena-fuseki/bin/s-query     |   16 +-
 jena-fuseki2/apache-jena-fuseki/bin/s-update    |   16 +-
 .../apache-jena-fuseki/bin/s-update-form        |   16 +-
 jena-fuseki2/apache-jena-fuseki/bin/soh         |   16 +-
 jena-fuseki2/apache-jena-fuseki/fuseki          |    5 -
 jena-fuseki2/apache-jena-fuseki/pom.xml         |   24 +-
 jena-fuseki2/jena-fuseki-core/fuseki-dev        |   12 +-
 jena-fuseki2/jena-fuseki-core/make_cp_mvn       |   50 -
 jena-fuseki2/jena-fuseki-core/pom.xml           |   56 +-
 .../java/org/apache/jena/fuseki/Fuseki.java     |   38 +-
 .../org/apache/jena/fuseki/FusekiException.java |    2 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   35 +-
 .../org/apache/jena/fuseki/FusekiLogging.java   |   10 +-
 .../org/apache/jena/fuseki/async/AsyncPool.java |    4 +-
 .../org/apache/jena/fuseki/async/AsyncTask.java |   16 +-
 .../org/apache/jena/fuseki/build/Builder.java   |   31 +-
 .../jena/fuseki/build/DataServiceDesc.java      |  107 -
 .../apache/jena/fuseki/build/FusekiConfig.java  |   72 +-
 .../jena/fuseki/build/TemplateFunctions.java    |    3 +-
 .../org/apache/jena/fuseki/cmd/FusekiCmd.java   |   39 +-
 .../apache/jena/fuseki/jetty/JettyFuseki.java   |   26 +-
 .../apache/jena/fuseki/mgt/ActionAsyncTask.java |    8 -
 .../apache/jena/fuseki/mgt/ActionBackup.java    |   18 +-
 .../apache/jena/fuseki/mgt/ActionDatasets.java  |   42 +-
 .../org/apache/jena/fuseki/mgt/ActionPing.java  |    5 +-
 .../java/org/apache/jena/fuseki/mgt/Async.java  |   17 +-
 .../java/org/apache/jena/fuseki/mgt/Backup.java |   52 +-
 .../org/apache/jena/fuseki/mgt/JsonConst.java   |   49 +-
 .../org/apache/jena/fuseki/mgt/TaskBase.java    |   43 +
 .../fuseki/migrate/DatasetGraphSwitchable.java  |    5 +-
 .../jena/fuseki/migrate/GraphLoadUtils.java     |    9 +-
 .../jena/fuseki/migrate/StreamRDFLimited.java   |    5 +-
 .../apache/jena/fuseki/server/DataService.java  |   32 +-
 .../jena/fuseki/server/DatasetStatus.java       |    2 +-
 .../apache/jena/fuseki/server/FusekiServer.java |   50 +-
 .../fuseki/server/FusekiServerListener.java     |    5 +-
 .../apache/jena/fuseki/server/FusekiVocab.java  |    3 +-
 .../jena/fuseki/server/ServerInitialConfig.java |   26 +-
 .../fuseki/server/ShiroEnvironmentLoader.java   |    3 +-
 .../apache/jena/fuseki/server/SystemState.java  |   34 +-
 .../apache/jena/fuseki/servlets/ActionBase.java |   26 +-
 .../apache/jena/fuseki/servlets/ActionREST.java |    6 +-
 .../jena/fuseki/servlets/ActionSPARQL.java      |    8 +-
 .../fuseki/servlets/ConcurrencyPolicyMRSW.java  |  113 -
 .../jena/fuseki/servlets/FusekiFilter.java      |    2 +-
 .../apache/jena/fuseki/servlets/HttpAction.java |   63 +-
 .../jena/fuseki/servlets/REST_Quads_R.java      |    3 +-
 .../jena/fuseki/servlets/REST_Quads_RW.java     |    5 +-
 .../jena/fuseki/servlets/ResponseModel.java     |    3 +-
 .../jena/fuseki/servlets/ResponseResultSet.java |   25 +-
 .../apache/jena/fuseki/servlets/SPARQL_GSP.java |    9 +-
 .../jena/fuseki/servlets/SPARQL_GSP_R.java      |    3 +-
 .../jena/fuseki/servlets/SPARQL_GSP_RW.java     |    5 +-
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |   22 +-
 .../jena/fuseki/servlets/SPARQL_Query.java      |   18 +-
 .../fuseki/servlets/SPARQL_QueryDataset.java    |   12 +-
 .../fuseki/servlets/SPARQL_QueryGeneral.java    |   13 +-
 .../fuseki/servlets/SPARQL_UberServlet.java     |   65 +-
 .../jena/fuseki/servlets/SPARQL_Update.java     |   27 +-
 .../jena/fuseki/servlets/SPARQL_Upload.java     |  114 +-
 .../jena/fuseki/validation/QueryValidator.java  |   15 +-
 .../jena/fuseki/validation/UpdateValidator.java |    9 +-
 .../fuseki/validation/ValidatorBaseJson.java    |    7 +-
 .../org/apache/jena/fuseki/log4j.properties     |    3 +-
 .../org/apache/jena/fuseki/server/shiro.ini     |    4 +-
 .../jena/fuseki/server/templates/config-tdb     |    7 +-
 .../jena/fuseki/server/templates/config-tdb-dir |    5 -
 .../jena/fuseki/server/templates/config-tdb-mem |    5 -
 .../src/main/webapp/admin-logs.html             |    2 +-
 .../src/main/webapp/css/codemirror.css          |  301 +
 .../src/main/webapp/css/jquery.dataTables.css   |  220 +
 .../src/main/webapp/css/yasqe.min.css           |    2 +-
 .../src/main/webapp/css/yasr.min.css            |    2 +-
 .../src/main/webapp/dataset.html                |    4 +-
 .../src/main/webapp/documentation.html          |    8 +-
 .../jena-fuseki-core/src/main/webapp/index.html |   27 +-
 .../main/webapp/js/app/models/fuseki-server.js  |    4 +-
 .../src/main/webapp/js/app/qonsole-config.js    |    9 +-
 .../js/app/templates/dataset-management.tpl     |   13 +-
 .../webapp/js/app/views/dataset-management.js   |   16 +-
 .../src/main/webapp/js/common-config.js         |    3 +-
 .../src/main/webapp/js/lib/yasqe.min.js         |    8 +-
 .../src/main/webapp/js/lib/yasqe.min.js.map     |    2 +-
 .../src/main/webapp/js/lib/yasr.min.js          |    8 +-
 .../src/main/webapp/js/lib/yasr.min.js.map      |    2 +-
 .../src/main/webapp/manage.html                 |    6 +-
 .../src/main/webapp/services.html               |    2 +-
 .../src/main/webapp/validate.html               |    4 +-
 .../java/org/apache/jena/fuseki/ServerTest.java |   43 +-
 .../java/org/apache/jena/fuseki/TestAuth.java   |  117 +-
 .../org/apache/jena/fuseki/TestDatasetOps.java  |   21 +-
 .../org/apache/jena/fuseki/TestFileUpload.java  |    9 +-
 .../java/org/apache/jena/fuseki/TestQuery.java  |   17 +-
 .../apache/jena/fuseki/TestSPARQLProtocol.java  |   19 +-
 .../fuseki/http/TestDatasetAccessorHTTP.java    |    9 +-
 .../org/apache/jena/fuseki/http/TestHttpOp.java |    5 +-
 jena-fuseki2/jena-fuseki-server/pom.xml         |   30 +-
 jena-fuseki2/jena-fuseki-war/pom.xml            |   30 +-
 jena-fuseki2/pom.xml                            |   16 +-
 jena-iri/RELEASE_NOTES.txt                      |   30 -
 jena-iri/pom.xml                                |    4 +-
 .../org/apache/jena/iri/TestIRIFactory.java     |    2 +-
 jena-jdbc/jena-jdbc-core/pom.xml                |    4 +-
 .../org/apache/jena/jdbc/JdbcCompatibility.java |    4 +-
 .../java/org/apache/jena/jdbc/JenaDriver.java   |    4 +-
 .../java/org/apache/jena/jdbc/JenaJDBC.java     |    2 +-
 .../jdbc/connections/DatasetConnection.java     |   11 +-
 .../jena/jdbc/connections/JenaConnection.java   |   32 +-
 .../jena/jdbc/metadata/DatasetMetadata.java     |    4 +-
 .../apache/jena/jdbc/metadata/JenaMetadata.java |  297 +-
 .../jdbc/metadata/results/MetaResultSet.java    |   40 +-
 .../postprocessing/ResultsPostProcessor.java    |    5 +-
 .../jdbc/preprocessing/CommandPreProcessor.java |    4 +-
 .../apache/jena/jdbc/results/AskResults.java    |   24 +-
 .../apache/jena/jdbc/results/JenaResultSet.java |   23 +-
 .../jena/jdbc/results/MaterializedResults.java  |   12 +-
 .../jdbc/results/MaterializedSelectResults.java |   23 +-
 .../jdbc/results/QueryExecutionResults.java     |    6 +-
 .../apache/jena/jdbc/results/SelectResults.java |   21 +-
 .../jena/jdbc/results/StreamedResults.java      |   12 +-
 .../jdbc/results/TripleIteratorResults.java     |   13 +-
 .../jena/jdbc/results/TripleListResults.java    |   19 +-
 .../metadata/AbstractResultsMetadata.java       |    9 +-
 .../results/metadata/SelectResultsMetadata.java |   11 +-
 .../results/metadata/TripleResultsMetadata.java |    5 +-
 .../results/metadata/columns/ColumnInfo.java    |    2 +-
 .../metadata/columns/SparqlColumnInfo.java      |    3 +-
 .../statements/DatasetPreparedStatement.java    |   17 +-
 .../jena/jdbc/statements/DatasetStatement.java  |   17 +-
 .../jdbc/statements/JenaPreparedStatement.java  |   29 +-
 .../jena/jdbc/statements/JenaStatement.java     |   59 +-
 .../metadata/JenaParameterMetadata.java         |    7 +-
 .../apache/jena/jdbc/utils/JdbcNodeUtils.java   |    8 +-
 .../main/resources/jena-jdbc-log4j.properties   |    6 +-
 .../jena/jdbc/AbstractJenaDriverTests.java      |    5 +-
 .../org/apache/jena/jdbc/TestCompatibility.java |   15 +-
 .../AbstractJenaConnectionTests.java            |   23 +-
 .../results/AbstractDatabaseMetadataTests.java  |    3 +-
 .../jena/jdbc/postprocessing/ResultsEcho.java   |    8 +-
 .../apache/jena/jdbc/preprocessing/Echo.java    |   11 +-
 .../jdbc/results/AbstractResultSetTests.java    |   19 +-
 .../statements/AbstractJenaStatementTests.java  |   28 +-
 .../org/apache/jena/jdbc/utils/TestUtils.java   |   19 +-
 .../src/test/resources/log4j.properties         |    6 +-
 jena-jdbc/jena-jdbc-driver-bundle/pom.xml       |   24 +-
 .../src/test/resources/log4j.properties         |    6 +-
 jena-jdbc/jena-jdbc-driver-mem/pom.xml          |    6 +-
 .../org/apache/jena/jdbc/mem/MemDriver.java     |    7 +-
 .../jdbc/mem/connections/MemConnection.java     |    5 +-
 .../jdbc/mem/metadata/MemDatasetMetadata.java   |   31 +-
 .../mem/connections/DebugMemConnection.java     |    5 +-
 .../mem/connections/TestDatasetConnection.java  |    5 +-
 .../metadata/TestDatasetConnectionMetadata.java |    3 +-
 .../mem/results/AbstractMemResultSetTests.java  |    3 +-
 .../jena/jdbc/mem/results/TestResultSets.java   |    7 +-
 .../jdbc/mem/statements/TestMemStatements.java  |    3 +-
 .../src/test/resources/log4j.properties         |    6 +-
 jena-jdbc/jena-jdbc-driver-remote/pom.xml       |   14 +-
 .../jena/jdbc/remote/RemoteEndpointDriver.java  |    3 +-
 .../connections/RemoteEndpointConnection.java   |   14 +-
 .../remote/metadata/RemoteEndpointMetadata.java |   35 +-
 .../RemoteEndpointPreparedStatement.java        |   20 +-
 .../statements/RemoteEndpointStatement.java     |   21 +-
 .../TestRemoteEndpointConnection.java           |    4 +-
 .../TestRemoteEndpointConnectionWithAuth.java   |   17 +-
 ...stRemoteEndpointConnectionWithGraphUris.java |    5 +-
 ...oteEndpointConnectionWithResultSetTypes.java |    4 +-
 .../AbstractRemoteEndpointResultSetTests.java   |    3 +-
 .../results/TestRemoteEndpointResults.java      |    9 +-
 .../TestRemoteEndpointResultsWithAuth.java      |   23 +-
 .../TestRemoteEndpointResultsWithGraphUris.java |    9 +-
 ...RemoteEndpointResultsWithResultSetTypes.java |   10 +-
 .../src/test/resources/log4j.properties         |    6 +-
 jena-jdbc/jena-jdbc-driver-tdb/pom.xml          |   13 +-
 .../org/apache/jena/jdbc/tdb/TDBDriver.java     |    9 +-
 .../jdbc/tdb/connections/TDBConnection.java     |    5 +-
 .../jdbc/tdb/metadata/TDBDatasetMetadata.java   |   39 +-
 .../tdb/connections/DebugTdbConnection.java     |    5 +-
 .../tdb/connections/TestTdbDiskConnection.java  |   11 +-
 .../tdb/connections/TestTdbMemConnection.java   |    9 +-
 .../tdb/metadata/TestTdbConnectionMetadata.java |    7 +-
 .../tdb/results/AbstractTdbResultSetTests.java  |    7 +-
 .../jdbc/tdb/results/TestTdbDiskResultSets.java |   15 +-
 .../jdbc/tdb/results/TestTdbMemResultSets.java  |   13 +-
 .../src/test/resources/log4j.properties         |    6 +-
 jena-jdbc/pom.xml                               |    4 +-
 jena-maven-tools/README                         |    2 +-
 jena-maven-tools/demo/pom.xml                   |   18 +-
 jena-maven-tools/pom.xml                        |  287 +-
 .../src/it/schemagen-integration-0/pom.xml      |    2 +-
 .../src/it/schemagen-integration-1/pom.xml      |    2 +-
 .../src/it/schemagen-integration-2/pom.xml      |    2 +-
 .../src/it/schemagen-integration-3/pom.xml      |    2 +-
 .../src/it/schemagen-integration-4/pom.xml      |   66 +
 .../src/main/vocabs/test1.ttl                   |   33 +
 .../src/it/schemagen-integration-4/verify.bsh   |   29 +
 .../jena/tools/schemagen/SchemagenMojo.java     |    6 +-
 .../jena/tools/schemagen/SchemagenOptions.java  |    5 +-
 .../org/apache/jena/tools/schemagen/Source.java |    6 +-
 .../tools/schemagen/SchemagenOptionsTest.java   |    6 +-
 .../tools/schemagen/SourceParameterTest.java    |   14 +-
 jena-parent/pom.xml                             |  113 +-
 jena-permissions/LICENSE                        |  202 +
 jena-permissions/NOTICE                         |    9 +
 jena-permissions/license-header.txt             |   15 +
 jena-permissions/pom.xml                        |  188 +
 jena-permissions/readme.md                      |   30 +
 .../permissions/example/ExampleEvaluator.java   |  147 +
 .../permissions/example/SecurityExample.java    |   93 +
 .../example/ShiroExampleEvaluator.java          |  235 +
 .../apache/jena/security/example/example.ttl    |   49 +
 .../jena/security/example/fuseki/config.ttl     |   98 +
 .../jena/security/example/fuseki/shiro.ini      |   47 +
 .../jena/permissions/AccessDeniedException.java |   66 +
 .../jena/permissions/AssemblerConstants.java    |   62 +
 .../org/apache/jena/permissions/Factory.java    |   69 +
 .../jena/permissions/SecuredAssembler.java      |  264 +
 .../jena/permissions/SecurityEvaluator.java     |  616 ++
 .../permissions/SecurityEvaluatorAssembler.java |  183 +
 .../permissions/graph/SecuredCapabilities.java  |  151 +
 .../jena/permissions/graph/SecuredGraph.java    |  162 +
 .../graph/SecuredGraphEventManager.java         |  608 ++
 .../permissions/graph/SecuredPrefixMapping.java |  133 +
 .../jena/permissions/graph/impl/Factory.java    |   95 +
 .../graph/impl/SecuredGraphImpl.java            |  285 +
 .../graph/impl/SecuredPrefixMappingImpl.java    |  167 +
 .../jena/permissions/graph/package-info.java    |   50 +
 .../impl/CachedSecurityEvaluator.java           |   90 +
 .../jena/permissions/impl/ItemHolder.java       |  117 +
 .../jena/permissions/impl/SecuredItem.java      |  185 +
 .../jena/permissions/impl/SecuredItemImpl.java  |  842 +++
 .../permissions/impl/SecuredItemInvoker.java    |  146 +
 .../jena/permissions/model/SecuredAlt.java      |  264 +
 .../jena/permissions/model/SecuredBag.java      |   29 +
 .../permissions/model/SecuredContainer.java     |  218 +
 .../jena/permissions/model/SecuredLiteral.java  |  165 +
 .../jena/permissions/model/SecuredModel.java    | 1566 ++++
 .../jena/permissions/model/SecuredProperty.java |   38 +
 .../jena/permissions/model/SecuredRDFList.java  |  414 ++
 .../jena/permissions/model/SecuredRDFNode.java  |   59 +
 .../model/SecuredReifiedStatement.java          |   38 +
 .../jena/permissions/model/SecuredResource.java |  333 +
 .../jena/permissions/model/SecuredSeq.java      |  385 +
 .../permissions/model/SecuredStatement.java     |  295 +
 ...SecuredUnsupportedPolymorphismException.java |   36 +
 .../permissions/model/impl/SecuredAltImpl.java  |  339 +
 .../permissions/model/impl/SecuredBagImpl.java  |   81 +
 .../model/impl/SecuredContainerImpl.java        |  557 ++
 .../model/impl/SecuredLiteralImpl.java          |  276 +
 .../model/impl/SecuredModelImpl.java            | 2739 +++++++
 .../model/impl/SecuredNodeIterator.java         |  143 +
 .../model/impl/SecuredPropertyImpl.java         |  129 +
 .../model/impl/SecuredRDFListImpl.java          | 1049 +++
 .../model/impl/SecuredRDFNodeImpl.java          |  253 +
 .../model/impl/SecuredRSIterator.java           |  173 +
 .../model/impl/SecuredReifiedStatementImpl.java |   99 +
 .../model/impl/SecuredResIterator.java          |  133 +
 .../model/impl/SecuredResourceImpl.java         |  893 +++
 .../permissions/model/impl/SecuredSelector.java |   94 +
 .../permissions/model/impl/SecuredSeqImpl.java  |  512 ++
 .../model/impl/SecuredStatementImpl.java        |  560 ++
 .../model/impl/SecuredStatementIterator.java    |  148 +
 .../apache/jena/permissions/package-info.java   |   48 +
 .../permissions/query/SecuredQueryEngine.java   |  152 +
 .../query/SecuredQueryEngineConfig.java         |   29 +
 .../query/SecuredQueryEngineFactory.java        |  115 +
 .../permissions/query/rewriter/OpRewriter.java  |  592 ++
 .../query/rewriter/SecuredFunction.java         |  137 +
 .../jena/permissions/utils/ContainerFilter.java |   49 +
 .../permissions/utils/PermStatementFilter.java  |  164 +
 .../permissions/utils/PermTripleFilter.java     |  163 +
 .../jena/permissions/utils/RDFListIterator.java |   79 +
 .../permissions/utils/RDFListSecFilter.java     |   58 +
 jena-permissions/src/main/overview.html         |   83 +
 .../apache/jena/permissions/EqualityTester.java |   49 +
 .../jena/permissions/MockPrefixMapping.java     |  105 +
 .../jena/permissions/MockSecurityEvaluator.java |  228 +
 .../ModelBasedSecurityEvaluator.java            |   77 +
 .../jena/permissions/SecuredAssemblerTest.java  |   85 +
 .../SecurityEvaluatorParameters.java            |  135 +
 .../permissions/StaticSecurityEvaluator.java    |   80 +
 .../graph/CachedSecurityEvaluatorTest.java      |   46 +
 .../graph/SecuredGraphContractTests.java        |   51 +
 .../graph/SecuredGraphListenerTest.java         |   51 +
 .../graph/SecuredTDBGraphContractTests.java     |   51 +
 .../contract/model/ModelTestSuite.java          |  132 +
 .../contract/model/SecTestLiterals.java         |   29 +
 .../contract/model/SecTestPackage.java          |  121 +
 .../contract/model/SecTestReaderEvents.java     |   28 +
 .../contract/model/SecTestReaders.java          |   28 +
 .../graph/CrossIDGraphEventManagerTest.java     |   78 +
 .../graph/GraphEventManagerTest.java            |  144 +
 .../jena/permissions/graph/MemGraphTest.java    |  313 +
 .../graph/RecordingGraphListener.java           |  124 +
 .../graph/SecuredPrefixMappingTest.java         |  440 ++
 .../jena/permissions/graph/TDBGraphTest.java    |   58 +
 .../jena/permissions/model/SecuredAltTest.java  |  657 ++
 .../jena/permissions/model/SecuredBagTest.java  |   46 +
 .../permissions/model/SecuredContainerTest.java |  480 ++
 .../permissions/model/SecuredLiteralTest.java   |  469 ++
 .../model/SecuredModelDetailTest.java           |  335 +
 .../permissions/model/SecuredModelTest.java     | 2035 ++++++
 .../permissions/model/SecuredPropertyTest.java  |   79 +
 .../permissions/model/SecuredRDFListTest.java   |  970 +++
 .../permissions/model/SecuredRDFNodeTest.java   |  209 +
 .../model/SecuredReifiedStatementTest.java      |   84 +
 .../permissions/model/SecuredResourceTest.java  |  827 +++
 .../jena/permissions/model/SecuredSeqTest.java  | 1013 +++
 .../permissions/model/SecuredStatementTest.java |  707 ++
 .../jena/permissions/query/DataSetTest.java     |  245 +
 .../jena/permissions/query/QueryEngineTest.java |  260 +
 .../query/rewriter/OpRewriterTest.java          |  112 +
 .../src/test/resources/log4j.properties         |   15 +
 .../jena/permissions/SecuredAssemblerTest.ttl   |   56 +
 .../apache/jena/permissions/model/detail.ttl    |   33 +
 .../org/apache/jena/permissions/model/test.ttl  |    2 +
 .../org/apache/jena/permissions/model/test.xml  |    7 +
 jena-sdb/BUILD                                  |   66 -
 jena-sdb/ChangeLog.txt                          |   86 -
 jena-sdb/README.txt                             |    2 -
 jena-sdb/dist/LICENSE                           |  246 -
 jena-sdb/dist/NOTICE                            |   42 -
 jena-sdb/dist/dist.sh                           |   34 -
 jena-sdb/log4j.properties                       |    8 +-
 jena-sdb/pom.xml                                |   28 +-
 jena-sdb/sdb.ttl                                |    2 +-
 jena-sdb/src-dev/java/dbtest/DB.java            |   59 -
 jena-sdb/src-dev/java/dbtest/Params.java        |   46 -
 jena-sdb/src-dev/java/dbtest/ParamsVocab.java   |   43 -
 jena-sdb/src-dev/java/dbtest/Setup.java         |  192 -
 jena-sdb/src-dev/java/dbtest/TestBinary.java    |  123 -
 jena-sdb/src-dev/java/dbtest/TestDB.java        |   86 -
 jena-sdb/src-dev/java/dbtest/TestLongText.java  |   89 -
 jena-sdb/src-dev/java/dbtest/TestShortText.java |  105 -
 jena-sdb/src-dev/java/dbtest/dbsetuptest.java   |  124 -
 jena-sdb/src-dev/java/dev/Main.java             |   54 -
 .../src-dev/java/dev/ReportSparqlUpdate.java    |   61 -
 jena-sdb/src-dev/java/dev/RunTests.java         |   50 -
 .../java/dev/TestStores2Connections1.java       |   97 -
 jena-sdb/src-dev/java/dev/db/DBSyntax.java      |   94 -
 jena-sdb/src-dev/java/dev/db/FmtStdHash.java    |  131 -
 .../src-dev/java/dev/db/StoreFormatterStd.java  |  101 -
 jena-sdb/src-dev/java/dev/inf/TransGraph.java   |  158 -
 .../src-dev/java/dev/inf/TransGraphNode.java    |   88 -
 .../src-dev/java/dev/inf/sdbRDFSexpand.java     |   66 -
 jena-sdb/src-dev/java/dev/inf/sdbRDFSload.java  |  100 -
 jena-sdb/src-dev/java/dev/pldms/Scratch.java    |  111 -
 .../java/dev/reports/OpenCurosrOracle.java      |   87 -
 .../dev/reports/Report_ReifiedStatements.java   |   63 -
 jena-sdb/src-dev/resources/etc/daml-micro.rules |   99 -
 .../src-dev/resources/etc/dig-daml-axioms.rdf   |  370 -
 .../src-dev/resources/etc/dig-owl-axioms.rdf    |  344 -
 .../src-dev/resources/etc/location-mapping.ex   |   63 -
 .../src-dev/resources/etc/ont-policy-test.rdf   |   75 -
 jena-sdb/src-dev/resources/etc/ont-policy.rdf   |   81 -
 jena-sdb/src-dev/resources/etc/owl-b.rules      |  322 -
 .../src-dev/resources/etc/owl-fb-micro.rules    |  582 --
 .../src-dev/resources/etc/owl-fb-mini.rules     |  748 --
 jena-sdb/src-dev/resources/etc/owl-fb-old.rules |  407 --
 jena-sdb/src-dev/resources/etc/owl-fb.rules     |  786 --
 jena-sdb/src-dev/resources/etc/owl.rules        |  305 -
 .../src-dev/resources/etc/rdfs-b-tuned.rules    |  111 -
 jena-sdb/src-dev/resources/etc/rdfs-b.rules     |   90 -
 .../src-dev/resources/etc/rdfs-fb-lp-expt.rules |   91 -
 .../resources/etc/rdfs-fb-tgc-noresource.rules  |  100 -
 .../resources/etc/rdfs-fb-tgc-simple.rules      |   49 -
 .../src-dev/resources/etc/rdfs-fb-tgc.rules     |  220 -
 jena-sdb/src-dev/resources/etc/rdfs-fb.rules    |   95 -
 .../src-dev/resources/etc/rdfs-noresource.rules |   84 -
 jena-sdb/src-dev/resources/etc/rdfs.rules       |   83 -
 .../src-dev/resources/etc/schemagen_example.rdf |  135 -
 .../src-dev/resources/vocabularies/assembler.n3 |  590 --
 .../vocabularies/daml+oil-2000-12.daml          |  440 --
 .../resources/vocabularies/daml+oil.daml        |  494 --
 .../resources/vocabularies/dublin-core_11.xml   |  236 -
 .../vocabularies/dublin-core_terms.xml          | 1151 ---
 .../vocabularies/dublin-core_types.xml          |  163 -
 .../resources/vocabularies/jena-model-spec.n3   |  105 -
 .../resources/vocabularies/jenavocab.rdf        |   98 -
 .../vocabularies/location-mapping-rdfs.n3       |   33 -
 .../resources/vocabularies/ont-event.rdf        |  284 -
 .../resources/vocabularies/ont-manager.rdf      |  102 -
 jena-sdb/src-dev/resources/vocabularies/owl.owl |  279 -
 .../resources/vocabularies/rdf-schema.rdf       |  235 -
 .../resources/vocabularies/result-set.n3        |   90 -
 .../resources/vocabularies/test-manifest-x.n3   |   64 -
 .../resources/vocabularies/test-manifest.n3     |  106 -
 .../resources/vocabularies/test-query.n3        |   40 -
 jena-sdb/src-examples/sdb/examples/Ex1.java     |    8 +-
 jena-sdb/src-examples/sdb/examples/Ex2.java     |   18 +-
 .../sdb/examples/ExJdbcConnection.java          |   22 +-
 .../src-examples/sdb/examples/ExModelSDB.java   |   12 +-
 .../src/main/java/com/hp/hpl/jena/sdb/SDB.java  |  178 -
 .../java/com/hp/hpl/jena/sdb/SDBException.java  |   31 -
 .../java/com/hp/hpl/jena/sdb/SDBFactory.java    |  403 -
 .../main/java/com/hp/hpl/jena/sdb/Store.java    |   99 -
 .../java/com/hp/hpl/jena/sdb/StoreDesc.java     |  115 -
 .../hpl/jena/sdb/assembler/AssemblerVocab.java  |  129 -
 .../sdb/assembler/BadDescriptionException.java  |   31 -
 .../assembler/CommandAssemblerException.java    |   31 -
 .../sdb/assembler/DatasetStoreAssembler.java    |   57 -
 .../jena/sdb/assembler/MissingException.java    |   31 -
 .../hpl/jena/sdb/assembler/QueryAssembler.java  |   54 -
 .../assembler/SDBConnectionDescAssembler.java   |   58 -
 .../jena/sdb/assembler/SDBModelAssembler.java   |   66 -
 .../jena/sdb/assembler/StoreDescAssembler.java  |  126 -
 .../sdb/assembler/TypeNotUniqueException.java   |   31 -
 .../jena/sdb/compiler/ConditionCompiler.java    |   26 -
 .../sdb/compiler/ConditionCompilerNone.java     |   37 -
 .../com/hp/hpl/jena/sdb/compiler/OpLibSDB.java  |   59 -
 .../com/hp/hpl/jena/sdb/compiler/OpSQL.java     |  132 -
 .../hp/hpl/jena/sdb/compiler/PatternTable.java  |  180 -
 .../com/hp/hpl/jena/sdb/compiler/QuadBlock.java |  196 -
 .../jena/sdb/compiler/QuadBlockCompiler.java    |   27 -
 .../sdb/compiler/QuadBlockCompilerMain.java     |  106 -
 .../hp/hpl/jena/sdb/compiler/QueryCompiler.java |   27 -
 .../jena/sdb/compiler/QueryCompilerFactory.java |   26 -
 .../jena/sdb/compiler/QueryCompilerMain.java    |  278 -
 .../hpl/jena/sdb/compiler/QueryIterOpSQL.java   |   72 -
 .../hp/hpl/jena/sdb/compiler/SDBCompile.java    |  133 -
 .../hp/hpl/jena/sdb/compiler/SDBConstraint.java |   51 -
 .../com/hp/hpl/jena/sdb/compiler/SDB_QC.java    |  157 -
 .../hp/hpl/jena/sdb/compiler/SlotCompiler.java  |   72 -
 .../hp/hpl/jena/sdb/compiler/SqlBuilder.java    |  216 -
 .../com/hp/hpl/jena/sdb/compiler/SqlStage.java  |   27 -
 .../jena/sdb/compiler/SqlStageBasicQuad.java    |  142 -
 .../hp/hpl/jena/sdb/compiler/SqlStageList.java  |   56 -
 .../hp/hpl/jena/sdb/compiler/TransformSDB.java  |  334 -
 .../sdb/compiler/TransformSliceProject.java     |   44 -
 .../sdb/compiler/rewrite/QBR_SubProperty.java   |   59 -
 .../jena/sdb/compiler/rewrite/QBR_SubType.java  |   59 -
 .../sdb/compiler/rewrite/QuadBlockRewrite.java  |   27 -
 .../rewrite/QuadBlockRewriteCompiler.java       |   54 -
 .../com/hp/hpl/jena/sdb/core/AliasesSparql.java |   25 -
 .../com/hp/hpl/jena/sdb/core/AliasesSql.java    |   32 -
 .../com/hp/hpl/jena/sdb/core/Annotation1.java   |   53 -
 .../com/hp/hpl/jena/sdb/core/Annotations.java   |   30 -
 .../hp/hpl/jena/sdb/core/AnnotationsBase.java   |   65 -
 .../com/hp/hpl/jena/sdb/core/ExprCompile.java   |   27 -
 .../com/hp/hpl/jena/sdb/core/ExprPattern.java   |   56 -
 .../com/hp/hpl/jena/sdb/core/Generator.java     |   25 -
 .../java/com/hp/hpl/jena/sdb/core/Gensym.java   |   64 -
 .../java/com/hp/hpl/jena/sdb/core/JoinType.java |   41 -
 .../java/com/hp/hpl/jena/sdb/core/Map2.java     |   45 -
 .../com/hp/hpl/jena/sdb/core/SDBConstants.java  |   37 -
 .../com/hp/hpl/jena/sdb/core/SDBRequest.java    |   97 -
 .../java/com/hp/hpl/jena/sdb/core/Scope.java    |   32 -
 .../java/com/hp/hpl/jena/sdb/core/Scope2.java   |  121 -
 .../com/hp/hpl/jena/sdb/core/ScopeBase.java     |  120 -
 .../com/hp/hpl/jena/sdb/core/ScopeEntry.java    |  107 -
 .../com/hp/hpl/jena/sdb/core/ScopeNull.java     |   40 -
 .../com/hp/hpl/jena/sdb/core/ScopeOptional.java |   76 -
 .../com/hp/hpl/jena/sdb/core/ScopeRename.java   |  137 -
 .../com/hp/hpl/jena/sdb/core/ScopeStatus.java   |   35 -
 .../java/com/hp/hpl/jena/sdb/core/ValScope.java |   38 -
 .../com/hp/hpl/jena/sdb/core/ValueSpace.java    |   21 -
 .../com/hp/hpl/jena/sdb/core/sqlexpr/S_And.java |   27 -
 .../hp/hpl/jena/sdb/core/sqlexpr/S_Equal.java   |   27 -
 .../hpl/jena/sdb/core/sqlexpr/S_IsNotNull.java  |   27 -
 .../hp/hpl/jena/sdb/core/sqlexpr/S_IsNull.java  |   27 -
 .../hp/hpl/jena/sdb/core/sqlexpr/S_Like.java    |   53 -
 .../com/hp/hpl/jena/sdb/core/sqlexpr/S_Not.java |   28 -
 .../hpl/jena/sdb/core/sqlexpr/S_NotEqual.java   |   27 -
 .../com/hp/hpl/jena/sdb/core/sqlexpr/S_Or.java  |   27 -
 .../hp/hpl/jena/sdb/core/sqlexpr/S_Regex.java   |   49 -
 .../hp/hpl/jena/sdb/core/sqlexpr/SqlColumn.java |   69 -
 .../hpl/jena/sdb/core/sqlexpr/SqlConstant.java  |   39 -
 .../hp/hpl/jena/sdb/core/sqlexpr/SqlExpr.java   |   34 -
 .../hp/hpl/jena/sdb/core/sqlexpr/SqlExpr1.java  |   39 -
 .../hp/hpl/jena/sdb/core/sqlexpr/SqlExpr2.java  |   41 -
 .../hpl/jena/sdb/core/sqlexpr/SqlExprBase.java  |   60 -
 .../sdb/core/sqlexpr/SqlExprColumnsUsed.java    |   31 -
 .../sdb/core/sqlexpr/SqlExprGenerateSQL.java    |  162 -
 .../hpl/jena/sdb/core/sqlexpr/SqlExprList.java  |   27 -
 .../jena/sdb/core/sqlexpr/SqlExprVisitor.java   |   37 -
 .../sdb/core/sqlexpr/SqlExprVisitorBase.java    |   47 -
 .../jena/sdb/core/sqlexpr/SqlExprWalker.java    |   76 -
 .../hpl/jena/sdb/core/sqlexpr/SqlFunction1.java |   39 -
 .../hp/hpl/jena/sdb/core/sqlnode/ColAlias.java  |   68 -
 .../hpl/jena/sdb/core/sqlnode/GenerateSQL.java  |   75 -
 .../jena/sdb/core/sqlnode/GenerateSQLDB2.java   |   49 -
 .../jena/sdb/core/sqlnode/GenerateSQLDerby.java |   42 -
 .../jena/sdb/core/sqlnode/GenerateSQLMySQL.java |   69 -
 .../sdb/core/sqlnode/GenerateSQLOracle.java     |   57 -
 .../sdb/core/sqlnode/GenerateSQLVisitor.java    |  536 --
 .../jena/sdb/core/sqlnode/GenerateSQL_MS.java   |  122 -
 .../hpl/jena/sdb/core/sqlnode/SqlCoalesce.java  |  154 -
 .../hpl/jena/sdb/core/sqlnode/SqlDistinct.java  |   63 -
 .../hp/hpl/jena/sdb/core/sqlnode/SqlJoin.java   |   92 -
 .../hpl/jena/sdb/core/sqlnode/SqlJoinInner.java |   50 -
 .../jena/sdb/core/sqlnode/SqlJoinLeftOuter.java |   49 -
 .../hp/hpl/jena/sdb/core/sqlnode/SqlNode.java   |   66 -
 .../hpl/jena/sdb/core/sqlnode/SqlNodeBase.java  |  131 -
 .../hpl/jena/sdb/core/sqlnode/SqlNodeBase0.java |   29 -
 .../hpl/jena/sdb/core/sqlnode/SqlNodeBase1.java |   38 -
 .../hpl/jena/sdb/core/sqlnode/SqlNodeBase2.java |   39 -
 .../sdb/core/sqlnode/SqlNodeTextVisitor.java    |  328 -
 .../jena/sdb/core/sqlnode/SqlNodeVisitor.java   |   39 -
 .../sdb/core/sqlnode/SqlNodeVisitorBase.java    |   61 -
 .../jena/sdb/core/sqlnode/SqlNodeWalker.java    |   96 -
 .../hpl/jena/sdb/core/sqlnode/SqlProject.java   |  127 -
 .../hp/hpl/jena/sdb/core/sqlnode/SqlRename.java |  112 -
 .../hpl/jena/sdb/core/sqlnode/SqlRestrict.java  |  119 -
 .../jena/sdb/core/sqlnode/SqlSelectBlock.java   |  321 -
 .../hp/hpl/jena/sdb/core/sqlnode/SqlSlice.java  |   57 -
 .../hp/hpl/jena/sdb/core/sqlnode/SqlTable.java  |  125 -
 .../hpl/jena/sdb/core/sqlnode/SqlTransform.java |   45 -
 .../jena/sdb/core/sqlnode/SqlTransformCopy.java |   95 -
 .../jena/sdb/core/sqlnode/SqlTransformer.java   |  119 -
 .../hp/hpl/jena/sdb/core/sqlnode/SqlUnion.java  |   54 -
 .../hp/hpl/jena/sdb/engine/QueryEngineSDB.java  |  202 -
 .../hp/hpl/jena/sdb/exprmatch/ActionMatch.java  |   35 -
 .../hpl/jena/sdb/exprmatch/ActionMatchBind.java |   32 -
 .../jena/sdb/exprmatch/ActionMatchExact.java    |   47 -
 .../jena/sdb/exprmatch/ActionMatchNoBind.java   |   29 -
 .../jena/sdb/exprmatch/ActionMatchNumeric.java  |   33 -
 .../jena/sdb/exprmatch/ActionMatchString.java   |   40 -
 .../hpl/jena/sdb/exprmatch/ActionMatchVar.java  |   33 -
 .../hp/hpl/jena/sdb/exprmatch/ActionReject.java |   32 -
 .../hp/hpl/jena/sdb/exprmatch/ExprMatcher.java  |  194 -
 .../hpl/jena/sdb/exprmatch/FunctionAction.java  |   28 -
 .../hp/hpl/jena/sdb/exprmatch/MapAction.java    |   25 -
 .../hp/hpl/jena/sdb/exprmatch/MapCallout.java   |   23 -
 .../hp/hpl/jena/sdb/exprmatch/MapResult.java    |   37 -
 .../hp/hpl/jena/sdb/exprmatch/NoExprMatch.java  |   28 -
 .../hp/hpl/jena/sdb/graph/EventManagerSDB.java  |   49 -
 .../com/hp/hpl/jena/sdb/graph/GraphSDB.java     |  317 -
 .../hp/hpl/jena/sdb/graph/PrefixMappingSDB.java |  219 -
 .../jena/sdb/graph/TransactionHandlerSDB.java   |  122 -
 .../hp/hpl/jena/sdb/graph/UpdateHandlerSDB.java |  113 -
 .../hp/hpl/jena/sdb/layout1/CodecSimple.java    |   67 -
 .../hp/hpl/jena/sdb/layout1/EncoderDecoder.java |   27 -
 .../hpl/jena/sdb/layout1/FormatterSimple.java   |   58 -
 .../jena/sdb/layout1/FormatterSimpleDB2.java    |  147 -
 .../jena/sdb/layout1/FormatterSimpleDerby.java  |  119 -
 .../hpl/jena/sdb/layout1/FormatterSimpleH2.java |  133 -
 .../jena/sdb/layout1/FormatterSimpleHSQL.java   |  123 -
 .../jena/sdb/layout1/FormatterSimpleMySQL.java  |  149 -
 .../jena/sdb/layout1/FormatterSimpleOracle.java |  144 -
 .../jena/sdb/layout1/FormatterSimplePGSQL.java  |  132 -
 .../jena/sdb/layout1/FormatterSimpleSAP.java    |  137 -
 .../sdb/layout1/FormatterSimpleSQLServer.java   |  143 -
 .../hp/hpl/jena/sdb/layout1/QueryCompiler1.java |   53 -
 .../jena/sdb/layout1/QueryCompilerFactory1.java |   40 -
 .../com/hp/hpl/jena/sdb/layout1/SQLBridge1.java |  104 -
 .../hpl/jena/sdb/layout1/SQLBridgeFactory1.java |   45 -
 .../hp/hpl/jena/sdb/layout1/SlotCompiler1.java  |   57 -
 .../com/hp/hpl/jena/sdb/layout1/StoreBase1.java |  134 -
 .../hp/hpl/jena/sdb/layout1/StoreSimpleDB2.java |   44 -
 .../hpl/jena/sdb/layout1/StoreSimpleDerby.java  |   44 -
 .../hp/hpl/jena/sdb/layout1/StoreSimpleH2.java  |   47 -
 .../hpl/jena/sdb/layout1/StoreSimpleHSQL.java   |   57 -
 .../hpl/jena/sdb/layout1/StoreSimpleMySQL.java  |   55 -
 .../hpl/jena/sdb/layout1/StoreSimpleOracle.java |   44 -
 .../hpl/jena/sdb/layout1/StoreSimplePGSQL.java  |   47 -
 .../hp/hpl/jena/sdb/layout1/StoreSimpleSAP.java |   54 -
 .../jena/sdb/layout1/StoreSimpleSQLServer.java  |   46 -
 .../hp/hpl/jena/sdb/layout1/TableDescSPO.java   |   30 -
 .../hpl/jena/sdb/layout1/TupleLoaderSimple.java |   56 -
 .../jena/sdb/layout2/ConditionCompiler2.java    |   55 -
 .../com/hp/hpl/jena/sdb/layout2/FmtLayout2.java |  150 -
 .../com/hp/hpl/jena/sdb/layout2/LoaderFmt.java  |   35 -
 .../hpl/jena/sdb/layout2/LoaderTuplesNodes.java |  377 -
 .../hp/hpl/jena/sdb/layout2/NodeLayout2.java    |  138 -
 .../jena/sdb/layout2/QuadBlockCompiler2.java    |   82 -
 .../hp/hpl/jena/sdb/layout2/QueryCompiler2.java |  181 -
 .../com/hp/hpl/jena/sdb/layout2/SQLBridge2.java |  259 -
 .../hpl/jena/sdb/layout2/SQLBridge2Oracle.java  |   82 -
 .../hpl/jena/sdb/layout2/SQLBridgeFactory2.java |   40 -
 .../sdb/layout2/SQLBridgeFactory2Oracle.java    |   37 -
 .../hp/hpl/jena/sdb/layout2/SlotCompiler2.java  |   45 -
 .../com/hp/hpl/jena/sdb/layout2/StoreBase.java  |  158 -
 .../hp/hpl/jena/sdb/layout2/TableDescNodes.java |   61 -
 .../hp/hpl/jena/sdb/layout2/TableDescQuads.java |   56 -
 .../hpl/jena/sdb/layout2/TableDescTriples.java  |   33 -
 .../hp/hpl/jena/sdb/layout2/TablePrefixes.java  |   31 -
 .../hpl/jena/sdb/layout2/TupleLoaderBase.java   |  498 --
 .../hpl/jena/sdb/layout2/TupleLoaderBasics.java |   31 -
 .../com/hp/hpl/jena/sdb/layout2/ValueType.java  |  166 -
 .../com/hp/hpl/jena/sdb/layout2/VarState.java   |   27 -
 .../jena/sdb/layout2/expr/RegexCompiler.java    |  133 -
 .../sdb/layout2/expr/StringExprCompiler.java    |  134 -
 .../sdb/layout2/hash/FmtLayout2HashDB2.java     |  128 -
 .../sdb/layout2/hash/FmtLayout2HashDerby.java   |  120 -
 .../jena/sdb/layout2/hash/FmtLayout2HashH2.java |  126 -
 .../sdb/layout2/hash/FmtLayout2HashHSQL.java    |  149 -
 .../sdb/layout2/hash/FmtLayout2HashMySQL.java   |  157 -
 .../sdb/layout2/hash/FmtLayout2HashOracle.java  |  130 -
 .../sdb/layout2/hash/FmtLayout2HashPGSQL.java   |  125 -
 .../sdb/layout2/hash/FmtLayout2HashSAP.java     |  129 -
 .../layout2/hash/FmtLayout2HashSQLServer.java   |  121 -
 .../layout2/hash/QueryCompilerFactoryHash.java  |   33 -
 .../sdb/layout2/hash/QueryCompilerHash.java     |   38 -
 .../jena/sdb/layout2/hash/SlotCompilerHash.java |   45 -
 .../jena/sdb/layout2/hash/StoreBaseHash.java    |   90 -
 .../layout2/hash/StoreTriplesNodesHashDB2.java  |   65 -
 .../hash/StoreTriplesNodesHashDerby.java        |   42 -
 .../layout2/hash/StoreTriplesNodesHashH2.java   |   41 -
 .../layout2/hash/StoreTriplesNodesHashHSQL.java |   54 -
 .../hash/StoreTriplesNodesHashMySQL.java        |   49 -
 .../hash/StoreTriplesNodesHashOracle.java       |   41 -
 .../hash/StoreTriplesNodesHashPGSQL.java        |   41 -
 .../layout2/hash/StoreTriplesNodesHashSAP.java  |   48 -
 .../hash/StoreTriplesNodesHashSQLServer.java    |   41 -
 .../jena/sdb/layout2/hash/TableNodesHash.java   |   36 -
 .../sdb/layout2/hash/TupleLoaderHashBase.java   |   82 -
 .../sdb/layout2/hash/TupleLoaderHashDB2.java    |   67 -
 .../sdb/layout2/hash/TupleLoaderHashDerby.java  |   65 -
 .../sdb/layout2/hash/TupleLoaderHashH2.java     |   61 -
 .../sdb/layout2/hash/TupleLoaderHashHSQL.java   |   49 -
 .../sdb/layout2/hash/TupleLoaderHashMySQL.java  |   74 -
 .../sdb/layout2/hash/TupleLoaderHashOracle.java |   59 -
 .../sdb/layout2/hash/TupleLoaderHashPGSQL.java  |   65 -
 .../sdb/layout2/hash/TupleLoaderHashSAP.java    |   54 -
 .../layout2/hash/TupleLoaderHashSQLServer.java  |   59 -
 .../sdb/layout2/hash/TupleLoaderOneHash.java    |  105 -
 .../sdb/layout2/index/FmtLayout2IndexDB2.java   |  144 -
 .../sdb/layout2/index/FmtLayout2IndexDerby.java |  123 -
 .../sdb/layout2/index/FmtLayout2IndexH2.java    |   96 -
 .../sdb/layout2/index/FmtLayout2IndexHSQL.java  |  101 -
 .../sdb/layout2/index/FmtLayout2IndexMySQL.java |  101 -
 .../layout2/index/FmtLayout2IndexOracle.java    |  129 -
 .../sdb/layout2/index/FmtLayout2IndexPGSQL.java |   96 -
 .../sdb/layout2/index/FmtLayout2IndexSAP.java   |  106 -
 .../layout2/index/FmtLayout2IndexSQLServer.java |   96 -
 .../hpl/jena/sdb/layout2/index/IndexCache.java  |   89 -
 .../index/QueryCompilerFactoryIndex.java        |   33 -
 .../sdb/layout2/index/QueryCompilerIndex.java   |   37 -
 .../sdb/layout2/index/SlotCompilerIndex.java    |  163 -
 .../jena/sdb/layout2/index/StoreBaseIndex.java  |  101 -
 .../index/StoreTriplesNodesIndexDB2.java        |   41 -
 .../index/StoreTriplesNodesIndexDerby.java      |   41 -
 .../layout2/index/StoreTriplesNodesIndexH2.java |   40 -
 .../index/StoreTriplesNodesIndexHSQL.java       |   48 -
 .../index/StoreTriplesNodesIndexMySQL.java      |   47 -
 .../index/StoreTriplesNodesIndexOracle.java     |   41 -
 .../index/StoreTriplesNodesIndexPGSQL.java      |   40 -
 .../index/StoreTriplesNodesIndexSAP.java        |   47 -
 .../index/StoreTriplesNodesIndexSQLServer.java  |   40 -
 .../jena/sdb/layout2/index/TableNodesIndex.java |   37 -
 .../sdb/layout2/index/TupleLoaderIndexBase.java |   88 -
 .../sdb/layout2/index/TupleLoaderIndexDB2.java  |  105 -
 .../layout2/index/TupleLoaderIndexDerby.java    |   65 -
 .../sdb/layout2/index/TupleLoaderIndexH2.java   |   62 -
 .../sdb/layout2/index/TupleLoaderIndexHSQL.java |   49 -
 .../layout2/index/TupleLoaderIndexMySQL.java    |  109 -
 .../layout2/index/TupleLoaderIndexOracle.java   |   99 -
 .../layout2/index/TupleLoaderIndexPGSQL.java    |   65 -
 .../sdb/layout2/index/TupleLoaderIndexSAP.java  |   62 -
 .../index/TupleLoaderIndexSQLServer.java        |   58 -
 .../sdb/layout2/index/TupleLoaderOneIndex.java  |  146 -
 .../hp/hpl/jena/sdb/modify/UpdateEngineSDB.java |   58 -
 .../com/hp/hpl/jena/sdb/print/StreamsPrint.java |   56 -
 .../com/hp/hpl/jena/sdb/script/CmdDesc.java     |  126 -
 .../hpl/jena/sdb/script/CmdDescAssembler.java   |  100 -
 .../java/com/hp/hpl/jena/sdb/script/QExec.java  |   45 -
 .../jena/sdb/script/QueryCommandAssembler.java  |   62 -
 .../hp/hpl/jena/sdb/script/ScriptAssembler.java |   63 -
 .../com/hp/hpl/jena/sdb/script/ScriptDesc.java  |   71 -
 .../com/hp/hpl/jena/sdb/script/ScriptVocab.java |   62 -
 .../java/com/hp/hpl/jena/sdb/shared/Access.java |   41 -
 .../java/com/hp/hpl/jena/sdb/shared/Env.java    |   65 -
 .../hpl/jena/sdb/shared/SDBInternalError.java   |   28 -
 .../jena/sdb/shared/SDBNotFoundException.java   |   29 -
 .../hpl/jena/sdb/shared/SDBNotImplemented.java  |   28 -
 .../hp/hpl/jena/sdb/shared/SymbolRegistry.java  |   62 -
 .../com/hp/hpl/jena/sdb/sql/DataSourceSDB.java  |   96 -
 .../com/hp/hpl/jena/sdb/sql/FunctionsSQL.java   |   82 -
 .../main/java/com/hp/hpl/jena/sdb/sql/JDBC.java |  212 -
 .../hp/hpl/jena/sdb/sql/MySQLEngineType.java    |   49 -
 .../main/java/com/hp/hpl/jena/sdb/sql/RS.java   |  238 -
 .../com/hp/hpl/jena/sdb/sql/ResultSetJDBC.java  |   61 -
 .../com/hp/hpl/jena/sdb/sql/SAPStorageType.java |   39 -
 .../com/hp/hpl/jena/sdb/sql/SDBConnection.java  |  349 -
 .../hp/hpl/jena/sdb/sql/SDBConnectionDesc.java  |  161 -
 .../hpl/jena/sdb/sql/SDBConnectionFactory.java  |  131 -
 .../hpl/jena/sdb/sql/SDBConnectionHolder.java   |   33 -
 .../hp/hpl/jena/sdb/sql/SDBExceptionSQL.java    |   30 -
 .../com/hp/hpl/jena/sdb/sql/SQLCommand.java     |   27 -
 .../java/com/hp/hpl/jena/sdb/sql/SQLUtils.java  |   53 -
 .../com/hp/hpl/jena/sdb/sql/SQLUtilsStd.java    |   83 -
 .../java/com/hp/hpl/jena/sdb/sql/TableDump.java |  213 -
 .../com/hp/hpl/jena/sdb/sql/TableUtils.java     |  135 -
 .../com/hp/hpl/jena/sdb/store/ConfigVocab.java  |   34 -
 .../com/hp/hpl/jena/sdb/store/DatabaseType.java |  135 -
 .../hp/hpl/jena/sdb/store/DatasetGraphSDB.java  |  134 -
 .../com/hp/hpl/jena/sdb/store/DatasetStore.java |   46 -
 .../java/com/hp/hpl/jena/sdb/store/Feature.java |  124 -
 .../com/hp/hpl/jena/sdb/store/FeatureSet.java   |   67 -
 .../com/hp/hpl/jena/sdb/store/LayoutType.java   |   95 -
 .../com/hp/hpl/jena/sdb/store/SQLBridge.java    |   44 -
 .../hp/hpl/jena/sdb/store/SQLBridgeBase.java    |  207 -
 .../hp/hpl/jena/sdb/store/SQLBridgeFactory.java |   37 -
 .../com/hp/hpl/jena/sdb/store/SQLGenerator.java |   27 -
 .../com/hp/hpl/jena/sdb/store/StoreBaseH2.java  |   82 -
 .../hp/hpl/jena/sdb/store/StoreBaseHSQL.java    |   83 -
 .../com/hp/hpl/jena/sdb/store/StoreConfig.java  |  326 -
 .../com/hp/hpl/jena/sdb/store/StoreFactory.java |  361 -
 .../hp/hpl/jena/sdb/store/StoreFormatter.java   |   41 -
 .../hpl/jena/sdb/store/StoreFormatterBase.java  |   41 -
 .../com/hp/hpl/jena/sdb/store/StoreHolder.java  |   34 -
 .../com/hp/hpl/jena/sdb/store/StoreLoader.java  |   38 -
 .../hp/hpl/jena/sdb/store/StoreLoaderPlus.java  |   29 -
 .../com/hp/hpl/jena/sdb/store/StoreMaker.java   |   33 -
 .../com/hp/hpl/jena/sdb/store/TableDesc.java    |   67 -
 .../hp/hpl/jena/sdb/store/TupleGraphLoader.java |   94 -
 .../com/hp/hpl/jena/sdb/store/TupleLoader.java  |   65 -
 .../hp/hpl/jena/sdb/store/TupleLoaderBase.java  |   80 -
 .../hp/hpl/jena/sdb/store/TupleLoaderOne.java   |  186 -
 .../com/hp/hpl/jena/sdb/store/TupleTable.java   |  131 -
 .../com/hp/hpl/jena/sdb/util/DerbyUtils.java    |   29 -
 .../java/com/hp/hpl/jena/sdb/util/H2Utils.java  |   51 -
 .../com/hp/hpl/jena/sdb/util/HSQLUtils.java     |   51 -
 .../java/com/hp/hpl/jena/sdb/util/Pair.java     |   61 -
 .../java/com/hp/hpl/jena/sdb/util/PrintSDB.java |  134 -
 .../com/hp/hpl/jena/sdb/util/RegexUtils.java    |  107 -
 .../com/hp/hpl/jena/sdb/util/StoreUtils.java    |  193 -
 .../java/com/hp/hpl/jena/sdb/util/StrUtils.java |   51 -
 .../java/com/hp/hpl/jena/sdb/util/Vocab.java    |   41 -
 .../src/main/java/org/apache/jena/sdb/SDB.java  |  179 +
 .../java/org/apache/jena/sdb/SDBException.java  |   31 +
 .../java/org/apache/jena/sdb/SDBFactory.java    |  462 ++
 .../main/java/org/apache/jena/sdb/Store.java    |   98 +
 .../java/org/apache/jena/sdb/StoreDesc.java     |  112 +
 .../jena/sdb/assembler/AssemblerVocab.java      |  129 +
 .../sdb/assembler/BadDescriptionException.java  |   31 +
 .../assembler/CommandAssemblerException.java    |   31 +
 .../sdb/assembler/DatasetStoreAssembler.java    |   57 +
 .../jena/sdb/assembler/MissingException.java    |   31 +
 .../jena/sdb/assembler/QueryAssembler.java      |   52 +
 .../assembler/SDBConnectionDescAssembler.java   |   56 +
 .../jena/sdb/assembler/SDBModelAssembler.java   |   64 +
 .../jena/sdb/assembler/StoreDescAssembler.java  |  122 +
 .../sdb/assembler/TypeNotUniqueException.java   |   31 +
 .../jena/sdb/compiler/ConditionCompiler.java    |   26 +
 .../sdb/compiler/ConditionCompilerNone.java     |   37 +
 .../org/apache/jena/sdb/compiler/OpLibSDB.java  |   54 +
 .../org/apache/jena/sdb/compiler/OpSQL.java     |  131 +
 .../apache/jena/sdb/compiler/PatternTable.java  |  179 +
 .../org/apache/jena/sdb/compiler/QuadBlock.java |  195 +
 .../jena/sdb/compiler/QuadBlockCompiler.java    |   27 +
 .../sdb/compiler/QuadBlockCompilerMain.java     |  105 +
 .../apache/jena/sdb/compiler/QueryCompiler.java |   27 +
 .../jena/sdb/compiler/QueryCompilerFactory.java |   26 +
 .../jena/sdb/compiler/QueryCompilerMain.java    |  268 +
 .../jena/sdb/compiler/QueryIterOpSQL.java       |   72 +
 .../apache/jena/sdb/compiler/SDBCompile.java    |  133 +
 .../apache/jena/sdb/compiler/SDBConstraint.java |   51 +
 .../org/apache/jena/sdb/compiler/SDB_QC.java    |  147 +
 .../apache/jena/sdb/compiler/SlotCompiler.java  |   71 +
 .../apache/jena/sdb/compiler/SqlBuilder.java    |  215 +
 .../org/apache/jena/sdb/compiler/SqlStage.java  |   27 +
 .../jena/sdb/compiler/SqlStageBasicQuad.java    |  141 +
 .../apache/jena/sdb/compiler/SqlStageList.java  |   56 +
 .../apache/jena/sdb/compiler/TransformSDB.java  |  324 +
 .../sdb/compiler/TransformSliceProject.java     |   44 +
 .../sdb/compiler/rewrite/QBR_SubProperty.java   |   59 +
 .../jena/sdb/compiler/rewrite/QBR_SubType.java  |   59 +
 .../sdb/compiler/rewrite/QuadBlockRewrite.java  |   27 +
 .../rewrite/QuadBlockRewriteCompiler.java       |   54 +
 .../org/apache/jena/sdb/core/AliasesSparql.java |   25 +
 .../org/apache/jena/sdb/core/AliasesSql.java    |   32 +
 .../org/apache/jena/sdb/core/Annotation1.java   |   53 +
 .../org/apache/jena/sdb/core/Annotations.java   |   30 +
 .../apache/jena/sdb/core/AnnotationsBase.java   |   65 +
 .../org/apache/jena/sdb/core/ExprCompile.java   |   27 +
 .../org/apache/jena/sdb/core/ExprPattern.java   |   56 +
 .../org/apache/jena/sdb/core/Generator.java     |   25 +
 .../java/org/apache/jena/sdb/core/Gensym.java   |   64 +
 .../java/org/apache/jena/sdb/core/JoinType.java |   41 +
 .../java/org/apache/jena/sdb/core/Map2.java     |   45 +
 .../org/apache/jena/sdb/core/SDBConstants.java  |   37 +
 .../org/apache/jena/sdb/core/SDBRequest.java    |   97 +
 .../java/org/apache/jena/sdb/core/Scope.java    |   32 +
 .../java/org/apache/jena/sdb/core/Scope2.java   |  121 +
 .../org/apache/jena/sdb/core/ScopeBase.java     |  119 +
 .../org/apache/jena/sdb/core/ScopeEntry.java    |   88 +
 .../org/apache/jena/sdb/core/ScopeNull.java     |   40 +
 .../org/apache/jena/sdb/core/ScopeOptional.java |   75 +
 .../org/apache/jena/sdb/core/ScopeRename.java   |  115 +
 .../org/apache/jena/sdb/core/ScopeStatus.java   |   35 +
 .../java/org/apache/jena/sdb/core/ValScope.java |   38 +
 .../org/apache/jena/sdb/core/ValueSpace.java    |   21 +
 .../org/apache/jena/sdb/core/sqlexpr/S_And.java |   27 +
 .../apache/jena/sdb/core/sqlexpr/S_Equal.java   |   27 +
 .../jena/sdb/core/sqlexpr/S_IsNotNull.java      |   27 +
 .../apache/jena/sdb/core/sqlexpr/S_IsNull.java  |   27 +
 .../apache/jena/sdb/core/sqlexpr/S_Like.java    |   53 +
 .../org/apache/jena/sdb/core/sqlexpr/S_Not.java |   28 +
 .../jena/sdb/core/sqlexpr/S_NotEqual.java       |   27 +
 .../org/apache/jena/sdb/core/sqlexpr/S_Or.java  |   27 +
 .../apache/jena/sdb/core/sqlexpr/S_Regex.java   |   49 +
 .../apache/jena/sdb/core/sqlexpr/SqlColumn.java |   69 +
 .../jena/sdb/core/sqlexpr/SqlConstant.java      |   39 +
 .../apache/jena/sdb/core/sqlexpr/SqlExpr.java   |   34 +
 .../apache/jena/sdb/core/sqlexpr/SqlExpr1.java  |   39 +
 .../apache/jena/sdb/core/sqlexpr/SqlExpr2.java  |   41 +
 .../jena/sdb/core/sqlexpr/SqlExprBase.java      |   60 +
 .../sdb/core/sqlexpr/SqlExprColumnsUsed.java    |   31 +
 .../sdb/core/sqlexpr/SqlExprGenerateSQL.java    |  161 +
 .../jena/sdb/core/sqlexpr/SqlExprList.java      |   27 +
 .../jena/sdb/core/sqlexpr/SqlExprVisitor.java   |   37 +
 .../sdb/core/sqlexpr/SqlExprVisitorBase.java    |   47 +
 .../jena/sdb/core/sqlexpr/SqlExprWalker.java    |   76 +
 .../jena/sdb/core/sqlexpr/SqlFunction1.java     |   39 +
 .../apache/jena/sdb/core/sqlnode/ColAlias.java  |   68 +
 .../jena/sdb/core/sqlnode/GenerateSQL.java      |   75 +
 .../jena/sdb/core/sqlnode/GenerateSQLDB2.java   |   49 +
 .../jena/sdb/core/sqlnode/GenerateSQLDerby.java |   42 +
 .../jena/sdb/core/sqlnode/GenerateSQLMySQL.java |   69 +
 .../sdb/core/sqlnode/GenerateSQLOracle.java     |   57 +
 .../sdb/core/sqlnode/GenerateSQLVisitor.java    |  528 ++
 .../jena/sdb/core/sqlnode/GenerateSQL_MS.java   |  122 +
 .../jena/sdb/core/sqlnode/SqlCoalesce.java      |  149 +
 .../jena/sdb/core/sqlnode/SqlDistinct.java      |   63 +
 .../apache/jena/sdb/core/sqlnode/SqlJoin.java   |   91 +
 .../jena/sdb/core/sqlnode/SqlJoinInner.java     |   50 +
 .../jena/sdb/core/sqlnode/SqlJoinLeftOuter.java |   49 +
 .../apache/jena/sdb/core/sqlnode/SqlNode.java   |   65 +
 .../jena/sdb/core/sqlnode/SqlNodeBase.java      |  131 +
 .../jena/sdb/core/sqlnode/SqlNodeBase0.java     |   29 +
 .../jena/sdb/core/sqlnode/SqlNodeBase1.java     |   38 +
 .../jena/sdb/core/sqlnode/SqlNodeBase2.java     |   39 +
 .../sdb/core/sqlnode/SqlNodeTextVisitor.java    |  327 +
 .../jena/sdb/core/sqlnode/SqlNodeVisitor.java   |   39 +
 .../sdb/core/sqlnode/SqlNodeVisitorBase.java    |   61 +
 .../jena/sdb/core/sqlnode/SqlNodeWalker.java    |   96 +
 .../jena/sdb/core/sqlnode/SqlProject.java       |  127 +
 .../apache/jena/sdb/core/sqlnode/SqlRename.java |  111 +
 .../jena/sdb/core/sqlnode/SqlRestrict.java      |  119 +
 .../jena/sdb/core/sqlnode/SqlSelectBlock.java   |  321 +
 .../apache/jena/sdb/core/sqlnode/SqlSlice.java  |   57 +
 .../apache/jena/sdb/core/sqlnode/SqlTable.java  |  125 +
 .../jena/sdb/core/sqlnode/SqlTransform.java     |   45 +
 .../jena/sdb/core/sqlnode/SqlTransformCopy.java |   95 +
 .../jena/sdb/core/sqlnode/SqlTransformer.java   |  119 +
 .../apache/jena/sdb/core/sqlnode/SqlUnion.java  |   54 +
 .../apache/jena/sdb/engine/QueryEngineSDB.java  |  196 +
 .../apache/jena/sdb/exprmatch/ActionMatch.java  |   35 +
 .../jena/sdb/exprmatch/ActionMatchBind.java     |   32 +
 .../jena/sdb/exprmatch/ActionMatchExact.java    |   47 +
 .../jena/sdb/exprmatch/ActionMatchNoBind.java   |   29 +
 .../jena/sdb/exprmatch/ActionMatchNumeric.java  |   33 +
 .../jena/sdb/exprmatch/ActionMatchString.java   |   40 +
 .../jena/sdb/exprmatch/ActionMatchVar.java      |   33 +
 .../apache/jena/sdb/exprmatch/ActionReject.java |   32 +
 .../apache/jena/sdb/exprmatch/ExprMatcher.java  |  194 +
 .../jena/sdb/exprmatch/FunctionAction.java      |   28 +
 .../apache/jena/sdb/exprmatch/MapAction.java    |   25 +
 .../apache/jena/sdb/exprmatch/MapCallout.java   |   23 +
 .../apache/jena/sdb/exprmatch/MapResult.java    |   37 +
 .../apache/jena/sdb/exprmatch/NoExprMatch.java  |   28 +
 .../apache/jena/sdb/graph/EventManagerSDB.java  |   48 +
 .../org/apache/jena/sdb/graph/GraphSDB.java     |  308 +
 .../apache/jena/sdb/graph/PrefixMappingSDB.java |  218 +
 .../jena/sdb/graph/TransactionHandlerSDB.java   |  121 +
 .../apache/jena/sdb/layout1/CodecSimple.java    |   67 +
 .../apache/jena/sdb/layout1/EncoderDecoder.java |   27 +
 .../jena/sdb/layout1/FormatterSimple.java       |   58 +
 .../jena/sdb/layout1/FormatterSimpleDB2.java    |  146 +
 .../jena/sdb/layout1/FormatterSimpleDerby.java  |  118 +
 .../jena/sdb/layout1/FormatterSimpleH2.java     |  132 +
 .../jena/sdb/layout1/FormatterSimpleHSQL.java   |  122 +
 .../jena/sdb/layout1/FormatterSimpleMySQL.java  |  148 +
 .../jena/sdb/layout1/FormatterSimpleOracle.java |  143 +
 .../jena/sdb/layout1/FormatterSimplePGSQL.java  |  131 +
 .../jena/sdb/layout1/FormatterSimpleSAP.java    |  136 +
 .../sdb/layout1/FormatterSimpleSQLServer.java   |  142 +
 .../apache/jena/sdb/layout1/QueryCompiler1.java |   53 +
 .../jena/sdb/layout1/QueryCompilerFactory1.java |   40 +
 .../org/apache/jena/sdb/layout1/SQLBridge1.java |  104 +
 .../jena/sdb/layout1/SQLBridgeFactory1.java     |   44 +
 .../apache/jena/sdb/layout1/SlotCompiler1.java  |   56 +
 .../org/apache/jena/sdb/layout1/StoreBase1.java |  133 +
 .../apache/jena/sdb/layout1/StoreSimpleDB2.java |   44 +
 .../jena/sdb/layout1/StoreSimpleDerby.java      |   44 +
 .../apache/jena/sdb/layout1/StoreSimpleH2.java  |   47 +
 .../jena/sdb/layout1/StoreSimpleHSQL.java       |   57 +
 .../jena/sdb/layout1/StoreSimpleMySQL.java      |   55 +
 .../jena/sdb/layout1/StoreSimpleOracle.java     |   44 +
 .../jena/sdb/layout1/StoreSimplePGSQL.java      |   47 +
 .../apache/jena/sdb/layout1/StoreSimpleSAP.java |   54 +
 .../jena/sdb/layout1/StoreSimpleSQLServer.java  |   46 +
 .../apache/jena/sdb/layout1/TableDescSPO.java   |   30 +
 .../jena/sdb/layout1/TupleLoaderSimple.java     |   53 +
 .../jena/sdb/layout2/ConditionCompiler2.java    |   53 +
 .../org/apache/jena/sdb/layout2/FmtLayout2.java |  150 +
 .../org/apache/jena/sdb/layout2/LoaderFmt.java  |   35 +
 .../jena/sdb/layout2/LoaderTuplesNodes.java     |  376 +
 .../apache/jena/sdb/layout2/NodeLayout2.java    |  137 +
 .../jena/sdb/layout2/QuadBlockCompiler2.java    |   82 +
 .../apache/jena/sdb/layout2/QueryCompiler2.java |  181 +
 .../org/apache/jena/sdb/layout2/SQLBridge2.java |  258 +
 .../jena/sdb/layout2/SQLBridge2Oracle.java      |   82 +
 .../jena/sdb/layout2/SQLBridgeFactory2.java     |   39 +
 .../sdb/layout2/SQLBridgeFactory2Oracle.java    |   37 +
 .../apache/jena/sdb/layout2/SlotCompiler2.java  |   44 +
 .../org/apache/jena/sdb/layout2/StoreBase.java  |  158 +
 .../apache/jena/sdb/layout2/TableDescNodes.java |   61 +
 .../apache/jena/sdb/layout2/TableDescQuads.java |   56 +
 .../jena/sdb/layout2/TableDescTriples.java      |   33 +
 .../apache/jena/sdb/layout2/TablePrefixes.java  |   31 +
 .../jena/sdb/layout2/TupleLoaderBase.java       |  498 ++
 .../jena/sdb/layout2/TupleLoaderBasics.java     |   31 +
 .../org/apache/jena/sdb/layout2/ValueType.java  |  166 +
 .../org/apache/jena/sdb/layout2/VarState.java   |   27 +
 .../jena/sdb/layout2/expr/RegexCompiler.java    |  132 +
 .../sdb/layout2/expr/StringExprCompiler.java    |  133 +
 .../sdb/layout2/hash/FmtLayout2HashDB2.java     |  124 +
 .../sdb/layout2/hash/FmtLayout2HashDerby.java   |  116 +
 .../jena/sdb/layout2/hash/FmtLayout2HashH2.java |  122 +
 .../sdb/layout2/hash/FmtLayout2HashHSQL.java    |  144 +
 .../sdb/layout2/hash/FmtLayout2HashMySQL.java   |  152 +
 .../sdb/layout2/hash/FmtLayout2HashOracle.java  |  126 +
 .../sdb/layout2/hash/FmtLayout2HashPGSQL.java   |  121 +
 .../sdb/layout2/hash/FmtLayout2HashSAP.java     |  125 +
 .../layout2/hash/FmtLayout2HashSQLServer.java   |  117 +
 .../layout2/hash/QueryCompilerFactoryHash.java  |   33 +
 .../sdb/layout2/hash/QueryCompilerHash.java     |   38 +
 .../jena/sdb/layout2/hash/SlotCompilerHash.java |   45 +
 .../jena/sdb/layout2/hash/StoreBaseHash.java    |   90 +
 .../layout2/hash/StoreTriplesNodesHashDB2.java  |   65 +
 .../hash/StoreTriplesNodesHashDerby.java        |   42 +
 .../layout2/hash/StoreTriplesNodesHashH2.java   |   41 +
 .../layout2/hash/StoreTriplesNodesHashHSQL.java |   54 +
 .../hash/StoreTriplesNodesHashMySQL.java        |   49 +
 .../hash/StoreTriplesNodesHashOracle.java       |   41 +
 .../hash/StoreTriplesNodesHashPGSQL.java        |   41 +
 .../layout2/hash/StoreTriplesNodesHashSAP.java  |   48 +
 .../hash/StoreTriplesNodesHashSQLServer.java    |   41 +
 .../jena/sdb/layout2/hash/TableNodesHash.java   |   36 +
 .../sdb/layout2/hash/TupleLoaderHashBase.java   |   82 +
 .../sdb/layout2/hash/TupleLoaderHashDB2.java    |   66 +
 .../sdb/layout2/hash/TupleLoaderHashDerby.java  |   64 +
 .../sdb/layout2/hash/TupleLoaderHashH2.java     |   61 +
 .../sdb/layout2/hash/TupleLoaderHashHSQL.java   |   49 +
 .../sdb/layout2/hash/TupleLoaderHashMySQL.java  |   74 +
 .../sdb/layout2/hash/TupleLoaderHashOracle.java |   58 +
 .../sdb/layout2/hash/TupleLoaderHashPGSQL.java  |   65 +
 .../sdb/layout2/hash/TupleLoaderHashSAP.java    |   54 +
 .../layout2/hash/TupleLoaderHashSQLServer.java  |   59 +
 .../sdb/layout2/hash/TupleLoaderOneHash.java    |  105 +
 .../sdb/layout2/index/FmtLayout2IndexDB2.java   |  140 +
 .../sdb/layout2/index/FmtLayout2IndexDerby.java |  124 +
 .../sdb/layout2/index/FmtLayout2IndexH2.java    |   96 +
 .../sdb/layout2/index/FmtLayout2IndexHSQL.java  |  101 +
 .../sdb/layout2/index/FmtLayout2IndexMySQL.java |  101 +
 .../layout2/index/FmtLayout2IndexOracle.java    |  129 +
 .../sdb/layout2/index/FmtLayout2IndexPGSQL.java |   96 +
 .../sdb/layout2/index/FmtLayout2IndexSAP.java   |  106 +
 .../layout2/index/FmtLayout2IndexSQLServer.java |   96 +
 .../jena/sdb/layout2/index/IndexCache.java      |   89 +
 .../index/QueryCompilerFactoryIndex.java        |   33 +
 .../sdb/layout2/index/QueryCompilerIndex.java   |   37 +
 .../sdb/layout2/index/SlotCompilerIndex.java    |  158 +
 .../jena/sdb/layout2/index/StoreBaseIndex.java  |  101 +
 .../index/StoreTriplesNodesIndexDB2.java        |   41 +
 .../index/StoreTriplesNodesIndexDerby.java      |   41 +
 .../layout2/index/StoreTriplesNodesIndexH2.java |   40 +
 .../index/StoreTriplesNodesIndexHSQL.java       |   48 +
 .../index/StoreTriplesNodesIndexMySQL.java      |   47 +
 .../index/StoreTriplesNodesIndexOracle.java     |   41 +
 .../index/StoreTriplesNodesIndexPGSQL.java      |   40 +
 .../index/StoreTriplesNodesIndexSAP.java        |   47 +
 .../index/StoreTriplesNodesIndexSQLServer.java  |   40 +
 .../jena/sdb/layout2/index/TableNodesIndex.java |   37 +
 .../sdb/layout2/index/TupleLoaderIndexBase.java |   88 +
 .../sdb/layout2/index/TupleLoaderIndexDB2.java  |  104 +
 .../layout2/index/TupleLoaderIndexDerby.java    |   64 +
 .../sdb/layout2/index/TupleLoaderIndexH2.java   |   62 +
 .../sdb/layout2/index/TupleLoaderIndexHSQL.java |   49 +
 .../layout2/index/TupleLoaderIndexMySQL.java    |  109 +
 .../layout2/index/TupleLoaderIndexOracle.java   |   98 +
 .../layout2/index/TupleLoaderIndexPGSQL.java    |   65 +
 .../sdb/layout2/index/TupleLoaderIndexSAP.java  |   62 +
 .../index/TupleLoaderIndexSQLServer.java        |   58 +
 .../sdb/layout2/index/TupleLoaderOneIndex.java  |  145 +
 .../apache/jena/sdb/modify/UpdateEngineSDB.java |   58 +
 .../org/apache/jena/sdb/print/ActionPrint.java  |   43 +
 .../org/apache/jena/sdb/print/StreamsPrint.java |   54 +
 .../org/apache/jena/sdb/script/CmdDesc.java     |  124 +
 .../jena/sdb/script/CmdDescAssembler.java       |   98 +
 .../java/org/apache/jena/sdb/script/QExec.java  |   44 +
 .../jena/sdb/script/QueryCommandAssembler.java  |   59 +
 .../apache/jena/sdb/script/ScriptAssembler.java |   61 +
 .../org/apache/jena/sdb/script/ScriptDesc.java  |   69 +
 .../org/apache/jena/sdb/script/ScriptVocab.java |   62 +
 .../java/org/apache/jena/sdb/shared/Access.java |   41 +
 .../java/org/apache/jena/sdb/shared/Env.java    |   64 +
 .../jena/sdb/shared/SDBInternalError.java       |   28 +
 .../jena/sdb/shared/SDBNotFoundException.java   |   29 +
 .../jena/sdb/shared/SDBNotImplemented.java      |   28 +
 .../apache/jena/sdb/shared/SymbolRegistry.java  |   62 +
 .../org/apache/jena/sdb/sql/DataSourceSDB.java  |   96 +
 .../org/apache/jena/sdb/sql/FunctionsSQL.java   |   82 +
 .../main/java/org/apache/jena/sdb/sql/JDBC.java |  211 +
 .../apache/jena/sdb/sql/MySQLEngineType.java    |   49 +
 .../main/java/org/apache/jena/sdb/sql/RS.java   |  238 +
 .../org/apache/jena/sdb/sql/ResultSetJDBC.java  |   61 +
 .../org/apache/jena/sdb/sql/SAPStorageType.java |   39 +
 .../org/apache/jena/sdb/sql/SDBConnection.java  |  347 +
 .../apache/jena/sdb/sql/SDBConnectionDesc.java  |  160 +
 .../jena/sdb/sql/SDBConnectionFactory.java      |  129 +
 .../jena/sdb/sql/SDBConnectionHolder.java       |   33 +
 .../apache/jena/sdb/sql/SDBExceptionSQL.java    |   30 +
 .../org/apache/jena/sdb/sql/SQLCommand.java     |   27 +
 .../java/org/apache/jena/sdb/sql/SQLUtils.java  |   53 +
 .../org/apache/jena/sdb/sql/SQLUtilsStd.java    |   83 +
 .../java/org/apache/jena/sdb/sql/TableDump.java |  213 +
 .../org/apache/jena/sdb/sql/TableUtils.java     |  135 +
 .../org/apache/jena/sdb/store/ConfigVocab.java  |   33 +
 .../org/apache/jena/sdb/store/DatabaseType.java |  134 +
 .../apache/jena/sdb/store/DatasetGraphSDB.java  |  115 +
 .../org/apache/jena/sdb/store/DatasetStore.java |   46 +
 .../java/org/apache/jena/sdb/store/Feature.java |  123 +
 .../org/apache/jena/sdb/store/FeatureSet.java   |   66 +
 .../org/apache/jena/sdb/store/LayoutType.java   |   94 +
 .../org/apache/jena/sdb/store/SQLBridge.java    |   44 +
 .../apache/jena/sdb/store/SQLBridgeBase.java    |  207 +
 .../apache/jena/sdb/store/SQLBridgeFactory.java |   36 +
 .../org/apache/jena/sdb/store/SQLGenerator.java |   27 +
 .../org/apache/jena/sdb/store/StoreBaseH2.java  |   82 +
 .../apache/jena/sdb/store/StoreBaseHSQL.java    |   83 +
 .../org/apache/jena/sdb/store/StoreConfig.java  |  323 +
 .../org/apache/jena/sdb/store/StoreFactory.java |  360 +
 .../apache/jena/sdb/store/StoreFormatter.java   |   41 +
 .../jena/sdb/store/StoreFormatterBase.java      |   41 +
 .../org/apache/jena/sdb/store/StoreHolder.java  |   34 +
 .../org/apache/jena/sdb/store/StoreLoader.java  |   38 +
 .../apache/jena/sdb/store/StoreLoaderPlus.java  |   29 +
 .../org/apache/jena/sdb/store/StoreMaker.java   |   33 +
 .../org/apache/jena/sdb/store/TableDesc.java    |   67 +
 .../apache/jena/sdb/store/TupleGraphLoader.java |   94 +
 .../org/apache/jena/sdb/store/TupleLoader.java  |   65 +
 .../apache/jena/sdb/store/TupleLoaderBase.java  |   80 +
 .../apache/jena/sdb/store/TupleLoaderOne.java   |  185 +
 .../org/apache/jena/sdb/store/TupleTable.java   |  128 +
 .../org/apache/jena/sdb/util/DerbyUtils.java    |   29 +
 .../java/org/apache/jena/sdb/util/H2Utils.java  |   51 +
 .../org/apache/jena/sdb/util/HSQLUtils.java     |   51 +
 .../java/org/apache/jena/sdb/util/Pair.java     |   62 +
 .../java/org/apache/jena/sdb/util/PrintSDB.java |  131 +
 .../org/apache/jena/sdb/util/RegexUtils.java    |  107 +
 .../org/apache/jena/sdb/util/StoreUtils.java    |  190 +
 .../java/org/apache/jena/sdb/util/StrUtils.java |   51 +
 .../java/org/apache/jena/sdb/util/Vocab.java    |   41 +
 jena-sdb/src/main/java/sdb/SDBCmd.java          |    6 +-
 jena-sdb/src/main/java/sdb/cmd/CmdArgsDB.java   |   30 +-
 jena-sdb/src/main/java/sdb/cmd/ModConfig.java   |    7 +-
 jena-sdb/src/main/java/sdb/cmd/ModData.java     |   12 +-
 .../src/main/java/sdb/cmd/ModDatasetStore.java  |   14 +-
 jena-sdb/src/main/java/sdb/cmd/ModGraph.java    |   16 +-
 jena-sdb/src/main/java/sdb/cmd/ModLogSQL.java   |   12 +-
 jena-sdb/src/main/java/sdb/cmd/ModStore.java    |   40 +-
 jena-sdb/src/main/java/sdb/query.java           |    5 +-
 jena-sdb/src/main/java/sdb/sdbconfig.java       |   15 +-
 jena-sdb/src/main/java/sdb/sdbdelete.java       |   17 +-
 jena-sdb/src/main/java/sdb/sdbdump.java         |   15 +-
 jena-sdb/src/main/java/sdb/sdbinfo.java         |   17 +-
 jena-sdb/src/main/java/sdb/sdbload.java         |   35 +-
 jena-sdb/src/main/java/sdb/sdbmeta.java         |   27 +-
 jena-sdb/src/main/java/sdb/sdbprint.java        |   31 +-
 jena-sdb/src/main/java/sdb/sdbquery.java        |   23 +-
 jena-sdb/src/main/java/sdb/sdbscript.java       |    3 +-
 jena-sdb/src/main/java/sdb/sdbsql.java          |   19 +-
 jena-sdb/src/main/java/sdb/sdbtruncate.java     |   14 +-
 jena-sdb/src/main/java/sdb/sdbtuple.java        |   22 +-
 jena-sdb/src/main/resources/sdb-properties.xml  |    4 +-
 .../jena/sdb/test/SDBModelGraphTestSuite.java   |   74 -
 .../hp/hpl/jena/sdb/test/SDBQueryTestSuite.java |   55 -
 .../com/hp/hpl/jena/sdb/test/SDBTestAll.java    |   54 -
 .../com/hp/hpl/jena/sdb/test/SDBTestMisc.java   |   43 -
 .../com/hp/hpl/jena/sdb/test/SDBTestSetup.java  |   35 -
 .../hpl/jena/sdb/test/SDBUpdateTestSuite.java   |   41 -
 .../com/hp/hpl/jena/sdb/test/StoreCreator.java  |  350 -
 .../sdb/test/graph/AbstractTestGraphSDB.java    |   30 -
 .../hpl/jena/sdb/test/graph/TestDB2Graph.java   |   92 -
 .../hpl/jena/sdb/test/graph/TestDerbyGraph.java |   92 -
 .../hpl/jena/sdb/test/graph/TestHSQLGraph.java  |   92 -
 .../hpl/jena/sdb/test/graph/TestMySQLGraph.java |   92 -
 .../jena/sdb/test/graph/TestOracleGraph.java    |   92 -
 .../hpl/jena/sdb/test/graph/TestPgSQLGraph.java |   92 -
 .../hpl/jena/sdb/test/graph/TestSAPGraph.java   |   92 -
 .../jena/sdb/test/graph/TestSQLServerGraph.java |   92 -
 .../jena/sdb/test/junit/ParamAllStoreDesc.java  |   69 -
 .../hpl/jena/sdb/test/junit/ParamAllStores.java |   72 -
 .../hpl/jena/sdb/test/junit/QueryTestSDB.java   |  213 -
 .../sdb/test/junit/QueryTestSDBFactory.java     |  113 -
 .../hpl/jena/sdb/test/junit/SDBTestUtils.java   |   44 -
 .../hp/hpl/jena/sdb/test/junit/StoreList.java   |  138 -
 .../hpl/jena/sdb/test/misc/TestAssembler.java   |  182 -
 .../hpl/jena/sdb/test/misc/TestConnection.java  |   80 -
 .../sdb/test/misc/TestConnectionPooled.java     |  110 -
 .../hpl/jena/sdb/test/misc/TestExprMatch.java   |  305 -
 .../sdb/test/misc/TestPrefixMappingSDB.java     |  129 -
 .../hp/hpl/jena/sdb/test/misc/TestRegex.java    |   42 -
 .../hp/hpl/jena/sdb/test/misc/TestRegistry.java |   74 -
 .../sdb/test/model/AbstractTestModelSDB.java    |   28 -
 .../hpl/jena/sdb/test/model/TestDB2Model.java   |   97 -
 .../hpl/jena/sdb/test/model/TestDerbyModel.java |   97 -
 .../hpl/jena/sdb/test/model/TestHSQLModel.java  |   97 -
 .../hpl/jena/sdb/test/model/TestMySQLModel.java |   97 -
 .../jena/sdb/test/model/TestOracleModel.java    |   97 -
 .../hpl/jena/sdb/test/model/TestPgSQLModel.java |   97 -
 .../hpl/jena/sdb/test/model/TestSAPModel.java   |   97 -
 .../jena/sdb/test/model/TestSQLServerModel.java |   97 -
 .../jena/sdb/test/modify/TestSPARQLUpdate.java  |   45 -
 .../sdb/test/modify/TestSPARQLUpdateMgt.java    |   46 -
 .../sdb/test/update/TestStoreUpdateBase.java    |  270 -
 .../sdb/test/update/TestStoreUpdateDB2Hash.java |   37 -
 .../test/update/TestStoreUpdateDB2Index.java    |   37 -
 .../test/update/TestStoreUpdateDerbyHash.java   |   37 -
 .../test/update/TestStoreUpdateDerbyIndex.java  |   37 -
 .../test/update/TestStoreUpdateHSQLHash.java    |   37 -
 .../test/update/TestStoreUpdateHSQLIndex.java   |   37 -
 .../test/update/TestStoreUpdateMySQLHash.java   |   37 -
 .../test/update/TestStoreUpdateMySQLIndex.java  |   37 -
 .../test/update/TestStoreUpdateOracleHash.java  |   37 -
 .../test/update/TestStoreUpdateOracleIndex.java |   37 -
 .../test/update/TestStoreUpdatePgSQLHash.java   |   37 -
 .../test/update/TestStoreUpdatePgSQLIndex.java  |   37 -
 .../sdb/test/update/TestStoreUpdateSAPHash.java |   37 -
 .../test/update/TestStoreUpdateSAPIndex.java    |   37 -
 .../update/TestStoreUpdateSQLServerHash.java    |   37 -
 .../update/TestStoreUpdateSQLServerIndex.java   |   37 -
 .../jena/sdb/test/SDBModelGraphTestSuite.java   |   72 +
 .../apache/jena/sdb/test/SDBQueryTestSuite.java |   54 +
 .../org/apache/jena/sdb/test/SDBTestAll.java    |   54 +
 .../org/apache/jena/sdb/test/SDBTestMisc.java   |   38 +
 .../org/apache/jena/sdb/test/SDBTestSetup.java  |   35 +
 .../jena/sdb/test/SDBUpdateTestSuite.java       |   40 +
 .../org/apache/jena/sdb/test/StoreCreator.java  |  336 +
 .../sdb/test/graph/AbstractTestGraphSDB.java    |   30 +
 .../jena/sdb/test/graph/TestDB2Graph.java       |   91 +
 .../jena/sdb/test/graph/TestDerbyGraph.java     |   91 +
 .../jena/sdb/test/graph/TestHSQLGraph.java      |   91 +
 .../jena/sdb/test/graph/TestMySQLGraph.java     |   91 +
 .../jena/sdb/test/graph/TestOracleGraph.java    |   91 +
 .../jena/sdb/test/graph/TestPgSQLGraph.java     |   91 +
 .../jena/sdb/test/graph/TestSAPGraph.java       |   91 +
 .../jena/sdb/test/graph/TestSQLServerGraph.java |   91 +
 .../jena/sdb/test/junit/ParamAllStoreDesc.java  |   59 +
 .../jena/sdb/test/junit/ParamAllStores.java     |   62 +
 .../jena/sdb/test/junit/QueryTestSDB.java       |  212 +
 .../sdb/test/junit/QueryTestSDBFactory.java     |  112 +
 .../jena/sdb/test/junit/SDBTestUtils.java       |   44 +
 .../apache/jena/sdb/test/junit/StoreList.java   |  117 +
 .../jena/sdb/test/misc/TestAssembler.java       |  181 +
 .../jena/sdb/test/misc/TestConnection.java      |   78 +
 .../sdb/test/misc/TestConnectionPooled.java     |  109 +
 .../jena/sdb/test/misc/TestExprMatch.java       |  304 +
 .../sdb/test/misc/TestPrefixMappingSDB.java     |  128 +
 .../apache/jena/sdb/test/misc/TestRegex.java    |   41 +
 .../apache/jena/sdb/test/misc/TestRegistry.java |   73 +
 .../sdb/test/model/AbstractTestModelSDB.java    |   28 +
 .../jena/sdb/test/model/TestDB2Model.java       |   96 +
 .../jena/sdb/test/model/TestDerbyModel.java     |   96 +
 .../jena/sdb/test/model/TestHSQLModel.java      |   96 +
 .../jena/sdb/test/model/TestMySQLModel.java     |   96 +
 .../jena/sdb/test/model/TestOracleModel.java    |   96 +
 .../jena/sdb/test/model/TestPgSQLModel.java     |   96 +
 .../jena/sdb/test/model/TestSAPModel.java       |   96 +
 .../jena/sdb/test/model/TestSQLServerModel.java |   96 +
 .../jena/sdb/test/modify/TestSPARQLUpdate.java  |   43 +
 .../sdb/test/modify/TestSPARQLUpdateMgt.java    |   43 +
 .../sdb/test/update/TestStoreUpdateBase.java    |  268 +
 .../sdb/test/update/TestStoreUpdateDB2Hash.java |   36 +
 .../test/update/TestStoreUpdateDB2Index.java    |   36 +
 .../test/update/TestStoreUpdateDerbyHash.java   |   36 +
 .../test/update/TestStoreUpdateDerbyIndex.java  |   36 +
 .../test/update/TestStoreUpdateHSQLHash.java    |   36 +
 .../test/update/TestStoreUpdateHSQLIndex.java   |   36 +
 .../test/update/TestStoreUpdateMySQLHash.java   |   36 +
 .../test/update/TestStoreUpdateMySQLIndex.java  |   36 +
 .../test/update/TestStoreUpdateOracleHash.java  |   36 +
 .../test/update/TestStoreUpdateOracleIndex.java |   36 +
 .../test/update/TestStoreUpdatePgSQLHash.java   |   36 +
 .../test/update/TestStoreUpdatePgSQLIndex.java  |   36 +
 .../sdb/test/update/TestStoreUpdateSAPHash.java |   36 +
 .../test/update/TestStoreUpdateSAPIndex.java    |   36 +
 .../update/TestStoreUpdateSQLServerHash.java    |   36 +
 .../update/TestStoreUpdateSQLServerIndex.java   |   36 +
 jena-sdb/src/test/java/sdb/DBTest.java          |   27 +-
 jena-sdb/src/test/java/sdb/sdbtest.java         |   37 +-
 .../src/test/java/sdb/test/TestStringBase.java  |    3 -
 jena-sdb/testing/Assembler/connection.ttl       |    2 +-
 jena-sdb/testing/Assembler/dataset.ttl          |    2 +-
 jena-sdb/testing/Assembler/dataset2.ttl         |    2 +-
 jena-sdb/testing/Assembler/graph-assembler.ttl  |    2 +-
 jena-sdb/testing/Assembler/store.ttl            |    2 +-
 jena-sdb/testing/slist.rq                       |    2 +-
 jena-security/LICENSE                           |  202 -
 jena-security/NOTICE                            |    5 -
 jena-security/license-header.txt                |   15 -
 jena-security/pom.xml                           |  203 -
 jena-security/readme.md                         |   32 -
 .../jena/security/example/ExampleEvaluator.java |  147 -
 .../jena/security/example/SecurityExample.java  |   93 -
 .../security/example/ShiroExampleEvaluator.java |  235 -
 .../apache/jena/security/example/example.ttl    |   49 -
 .../jena/security/example/fuseki/config.ttl     |   98 -
 .../jena/security/example/fuseki/shiro.ini      |   47 -
 .../jena/security/AccessDeniedException.java    |   66 -
 .../jena/security/AssemblerConstants.java       |   62 -
 .../java/org/apache/jena/security/Factory.java  |   70 -
 .../apache/jena/security/SecuredAssembler.java  |  264 -
 .../apache/jena/security/SecurityEvaluator.java |  616 --
 .../security/SecurityEvaluatorAssembler.java    |  186 -
 .../graph/SecuredBulkUpdateHandler.java         |  149 -
 .../security/graph/SecuredCapabilities.java     |  152 -
 .../jena/security/graph/SecuredGraph.java       |  177 -
 .../graph/SecuredGraphEventManager.java         |  609 --
 .../security/graph/SecuredPrefixMapping.java    |  134 -
 .../jena/security/graph/impl/Factory.java       |  130 -
 .../impl/SecuredBulkUpdateHandlerImpl.java      |  243 -
 .../security/graph/impl/SecuredGraphImpl.java   |  304 -
 .../graph/impl/SecuredPrefixMappingImpl.java    |  168 -
 .../jena/security/graph/package-info.java       |   50 -
 .../security/impl/CachedSecurityEvaluator.java  |   90 -
 .../apache/jena/security/impl/ItemHolder.java   |  117 -
 .../apache/jena/security/impl/SecuredItem.java  |  185 -
 .../jena/security/impl/SecuredItemImpl.java     |  843 ---
 .../jena/security/impl/SecuredItemInvoker.java  |  146 -
 .../apache/jena/security/model/SecuredAlt.java  |  265 -
 .../apache/jena/security/model/SecuredBag.java  |   29 -
 .../jena/security/model/SecuredContainer.java   |  219 -
 .../jena/security/model/SecuredLiteral.java     |  166 -
 .../jena/security/model/SecuredModel.java       | 1567 ----
 .../jena/security/model/SecuredProperty.java    |   39 -
 .../jena/security/model/SecuredRDFList.java     |  419 --
 .../jena/security/model/SecuredRDFNode.java     |   60 -
 .../security/model/SecuredReifiedStatement.java |   39 -
 .../jena/security/model/SecuredResource.java    |  338 -
 .../apache/jena/security/model/SecuredSeq.java  |  386 -
 .../jena/security/model/SecuredStatement.java   |  300 -
 ...SecuredUnsupportedPolymorphismException.java |   37 -
 .../security/model/impl/SecuredAltImpl.java     |  344 -
 .../security/model/impl/SecuredBagImpl.java     |   82 -
 .../model/impl/SecuredContainerImpl.java        |  582 --
 .../security/model/impl/SecuredLiteralImpl.java |  278 -
 .../security/model/impl/SecuredModelImpl.java   | 2740 -------
 .../model/impl/SecuredNodeIterator.java         |  144 -
 .../model/impl/SecuredPropertyImpl.java         |  130 -
 .../security/model/impl/SecuredRDFListImpl.java | 1068 ---
 .../security/model/impl/SecuredRDFNodeImpl.java |  254 -
 .../security/model/impl/SecuredRSIterator.java  |  175 -
 .../model/impl/SecuredReifiedStatementImpl.java |  100 -
 .../security/model/impl/SecuredResIterator.java |  134 -
 .../model/impl/SecuredResourceImpl.java         |  894 ---
 .../security/model/impl/SecuredSelector.java    |  100 -
 .../security/model/impl/SecuredSeqImpl.java     |  512 --
 .../model/impl/SecuredStatementImpl.java        |  561 --
 .../model/impl/SecuredStatementIterator.java    |  149 -
 .../org/apache/jena/security/package-info.java  |   48 -
 .../jena/security/query/SecuredQueryEngine.java |  153 -
 .../query/SecuredQueryEngineConfig.java         |   29 -
 .../query/SecuredQueryEngineFactory.java        |  116 -
 .../security/query/rewriter/OpRewriter.java     |  628 --
 .../query/rewriter/SecuredFunction.java         |  143 -
 .../jena/security/utils/ContainerFilter.java    |   48 -
 .../security/utils/PermStatementFilter.java     |  165 -
 .../jena/security/utils/PermTripleFilter.java   |  164 -
 .../jena/security/utils/RDFListIterator.java    |   79 -
 .../jena/security/utils/RDFListSecFilter.java   |   59 -
 jena-security/src/main/overview.html            |   83 -
 .../apache/jena/security/EqualityTester.java    |   49 -
 .../apache/jena/security/MockPrefixMapping.java |  105 -
 .../jena/security/MockSecurityEvaluator.java    |  229 -
 .../security/ModelBasedSecurityEvaluator.java   |   76 -
 .../jena/security/SecuredAssemblerTest.java     |   86 -
 .../security/SecurityEvaluatorParameters.java   |  135 -
 .../jena/security/StaticSecurityEvaluator.java  |   78 -
 .../graph/CachedSecurityEvaluatorTest.java      |   45 -
 .../graph/SecuredGraphContractTests.java        |   52 -
 .../graph/SecuredGraphListenerTest.java         |   52 -
 .../graph/SecuredTDBGraphContractTests.java     |   52 -
 .../security/contract/model/ModelTestSuite.java |  132 -
 .../contract/model/SecTestLiterals.java         |   29 -
 .../security/contract/model/SecTestPackage.java |  123 -
 .../contract/model/SecTestReaderEvents.java     |   28 -
 .../security/contract/model/SecTestReaders.java |   28 -
 .../security/graph/BulkUpdateHandlerTest.java   |  374 -
 .../graph/CrossIDGraphEventManagerTest.java     |   78 -
 .../security/graph/GraphEventManagerTest.java   |  240 -
 .../jena/security/graph/MemGraphTest.java       |  393 -
 .../security/graph/RecordingGraphListener.java  |  124 -
 .../graph/SecuredPrefixMappingTest.java         |  442 --
 .../jena/security/graph/TDBGraphTest.java       |   59 -
 .../jena/security/model/SecuredAltTest.java     |  658 --
 .../jena/security/model/SecuredBagTest.java     |   47 -
 .../security/model/SecuredContainerTest.java    |  481 --
 .../jena/security/model/SecuredLiteralTest.java |  469 --
 .../security/model/SecuredModelDetailTest.java  |  342 -
 .../jena/security/model/SecuredModelTest.java   | 2035 ------
 .../security/model/SecuredPropertyTest.java     |   80 -
 .../jena/security/model/SecuredRDFListTest.java |  976 ---
 .../jena/security/model/SecuredRDFNodeTest.java |  215 -
 .../model/SecuredReifiedStatementTest.java      |   85 -
 .../security/model/SecuredResourceTest.java     |  828 ---
 .../jena/security/model/SecuredSeqTest.java     | 1014 ---
 .../security/model/SecuredStatementTest.java    |  714 --
 .../apache/jena/security/query/DataSetTest.java |  250 -
 .../jena/security/query/QueryEngineTest.java    |  260 -
 .../security/query/rewriter/OpRewriterTest.java |  112 -
 .../src/test/resources/log4j.properties         |   15 -
 .../jena/security/SecuredAssemblerTest.ttl      |   56 -
 .../org/apache/jena/security/model/detail.ttl   |   33 -
 .../org/apache/jena/security/model/test.ttl     |    2 -
 .../org/apache/jena/security/model/test.xml     |    7 -
 jena-shaded-guava/.gitignore                    |    1 +
 jena-shaded-guava/DEPENDENCIES                  |    2 +
 jena-shaded-guava/LICENSE                       |  175 +
 jena-shaded-guava/pom.xml                       |  110 +
 jena-spatial/ReleaseNotes.txt                   |   18 -
 jena-spatial/pom.xml                            |   11 +-
 .../main/java/examples/JenaSpatialExample1.java |   11 +-
 .../src/main/java/jena/spatialindexdump.java    |   48 +-
 .../src/main/java/jena/spatialindexer.java      |   12 +-
 .../jena/query/spatial/DatasetGraphSpatial.java |   13 +-
 .../jena/query/spatial/EntityDefinition.java    |   11 +-
 .../query/spatial/SpatialDatasetFactory.java    |   11 +-
 .../jena/query/spatial/SpatialDocProducer.java  |    2 +-
 .../spatial/SpatialDocProducerTriples.java      |   24 +-
 .../apache/jena/query/spatial/SpatialIndex.java |    2 +-
 .../jena/query/spatial/SpatialIndexContext.java |    2 +-
 .../query/spatial/SpatialIndexException.java    |    2 +-
 .../jena/query/spatial/SpatialIndexLucene.java  |    2 +-
 .../jena/query/spatial/SpatialIndexSolr.java    |    4 +-
 .../query/spatial/SpatialPredicatePair.java     |    2 +-
 .../spatial/SpatialPredicatePairValue.java      |    3 +-
 .../apache/jena/query/spatial/SpatialQuery.java |   16 +-
 .../jena/query/spatial/SpatialQueryFuncs.java   |    6 +-
 .../jena/query/spatial/SpatialValueUtil.java    |   10 +-
 .../assembler/EntityDefinitionAssembler.java    |   22 +-
 .../spatial/assembler/SpatialAssembler.java     |    4 +-
 .../assembler/SpatialDatasetAssembler.java      |   14 +-
 .../assembler/SpatialIndexLuceneAssembler.java  |   39 +-
 .../assembler/SpatialIndexSolrAssembler.java    |   11 +-
 .../query/spatial/assembler/SpatialVocab.java   |    6 +-
 .../pfunction/DirectionWithPointPFBase.java     |   15 +-
 .../pfunction/SpatialOperationPFBase.java       |   25 +-
 .../SpatialOperationWithBoxPFBase.java          |   15 +-
 .../SpatialOperationWithCircleBase.java         |   15 +-
 .../AbstractTestDatasetWithSpatialIndex.java    |   12 +-
 .../jena/query/spatial/SpatialSearchUtil.java   |    7 +-
 .../assembler/AbstractTestSpatialAssembler.java |   12 +-
 .../TestEntityDefinitionAssembler.java          |    7 +-
 .../assembler/TestSpatialDatasetAssembler.java  |   12 +-
 .../TestSpatialIndexLuceneAssembler.java        |    4 +-
 .../TestSpatialIndexSolrAssembler.java          |    4 +-
 .../src/test/resources/geoarq-query-1.rq        |    2 +-
 .../src/test/resources/log4j.properties         |    4 +-
 .../src/test/resources/spatial-config.ttl       |    2 +-
 .../src/test/resources/spatial-solr-config.ttl  |    2 +-
 jena-tdb/README                                 |   20 -
 jena-tdb/ReleaseNotes.txt                       |   82 -
 jena-tdb/bin/make_classpath                     |   98 -
 jena-tdb/bin/make_classpath_mvn                 |   68 -
 jena-tdb/bin/tdb                                |   12 -
 jena-tdb/bin/tdb_cmd                            |   35 -
 jena-tdb/bin/tdb_init                           |   32 -
 jena-tdb/bin/tdb_path                           |   33 -
 jena-tdb/bin/tdbbackup                          |   35 -
 jena-tdb/bin/tdbclean                           |   23 -
 jena-tdb/bin/tdbdump                            |   35 -
 jena-tdb/bin/tdbjournal                         |   35 -
 jena-tdb/bin/tdbloader                          |   35 -
 jena-tdb/bin/tdbloader2worker                   |    2 +-
 jena-tdb/bin/tdbloader3                         |   52 -
 jena-tdb/bin/tdbquery                           |   35 -
 jena-tdb/bin/tdbrecovery                        |   35 -
 jena-tdb/bin/tdbstats                           |   35 -
 jena-tdb/bin/tdbupdate                          |   35 -
 jena-tdb/bin/tdbverify                          |   11 -
 jena-tdb/log4j.properties                       |   16 +-
 jena-tdb/pom.xml                                |   20 +-
 jena-tdb/src-dev/dev/Tests.java                 |   32 -
 jena-tdb/src-dev/test/BPlusTreeRun.java         |   74 -
 jena-tdb/src-dev/test/ByteBufferTest.java       |   78 -
 jena-tdb/src-dev/test/ExtHashRun.java           |  200 -
 jena-tdb/src-dev/test/RunnerExecute.java        |  119 -
 jena-tdb/src-dev/test/RunnerRangeIndex.java     |  149 -
 .../src-examples/tdb/examples/ExTDB_Txn3.java   |    2 +-
 .../com/hp/hpl/jena/tdb/StoreConnection.java    |  305 -
 .../src/main/java/com/hp/hpl/jena/tdb/TDB.java  |  283 -
 .../java/com/hp/hpl/jena/tdb/TDBBackup.java     |   63 -
 .../java/com/hp/hpl/jena/tdb/TDBException.java  |   29 -
 .../java/com/hp/hpl/jena/tdb/TDBFactory.java    |  256 -
 .../java/com/hp/hpl/jena/tdb/TDBLoader.java     |  279 -
 .../hp/hpl/jena/tdb/assembler/AssemblerTDB.java |   29 -
 .../jena/tdb/assembler/DatasetAssemblerTDB.java |   79 -
 .../hpl/jena/tdb/assembler/IndexAssembler.java  |   92 -
 .../jena/tdb/assembler/NodeTableAssembler.java  |   62 -
 .../jena/tdb/assembler/SettingAssembler.java    |   52 -
 .../jena/tdb/assembler/TDBGraphAssembler.java   |  126 -
 .../com/hp/hpl/jena/tdb/assembler/Vocab.java    |   41 -
 .../com/hp/hpl/jena/tdb/assembler/VocabTDB.java |   96 -
 .../hp/hpl/jena/tdb/base/StorageException.java  |   27 -
 .../com/hp/hpl/jena/tdb/base/block/Block.java   |  179 -
 .../hpl/jena/tdb/base/block/BlockConverter.java |   33 -
 .../hpl/jena/tdb/base/block/BlockException.java |   29 -
 .../hp/hpl/jena/tdb/base/block/BlockMgr.java    |  105 -
 .../hpl/jena/tdb/base/block/BlockMgrBase.java   |   57 -
 .../hpl/jena/tdb/base/block/BlockMgrCache.java  |  363 -
 .../jena/tdb/base/block/BlockMgrFactory.java    |  152 -
 .../jena/tdb/base/block/BlockMgrFileAccess.java |  159 -
 .../jena/tdb/base/block/BlockMgrFreeChain.java  |   82 -
 .../hpl/jena/tdb/base/block/BlockMgrLogger.java |  211 -
 .../jena/tdb/base/block/BlockMgrReadonly.java   |   53 -
 .../jena/tdb/base/block/BlockMgrSwitcher.java   |   40 -
 .../hpl/jena/tdb/base/block/BlockMgrSync.java   |  197 -
 .../jena/tdb/base/block/BlockMgrTracker.java    |  489 --
 .../jena/tdb/base/block/BlockMgrWrapper.java    |  179 -
 .../hp/hpl/jena/tdb/base/block/BlockParams.java |   27 -
 .../hp/hpl/jena/tdb/base/block/BlockType.java   |   71 -
 .../hp/hpl/jena/tdb/base/block/FileMode.java    |   27 -
 .../hp/hpl/jena/tdb/base/buffer/BufferBase.java |  266 -
 .../jena/tdb/base/buffer/BufferException.java   |   27 -
 .../hp/hpl/jena/tdb/base/buffer/PtrBuffer.java  |  142 -
 .../hpl/jena/tdb/base/buffer/RecordBuffer.java  |  246 -
 .../tdb/base/buffer/RecordBufferIterator.java   |   99 -
 .../hp/hpl/jena/tdb/base/file/BlockAccess.java  |   53 -
 .../hpl/jena/tdb/base/file/BlockAccessBase.java |  161 -
 .../tdb/base/file/BlockAccessByteArray.java     |  124 -
 .../jena/tdb/base/file/BlockAccessDirect.java   |  126 -
 .../jena/tdb/base/file/BlockAccessMapped.java   |  284 -
 .../hpl/jena/tdb/base/file/BlockAccessMem.java  |  164 -
 .../hpl/jena/tdb/base/file/BufferAllocator.java |   43 -
 .../tdb/base/file/BufferAllocatorDirect.java    |   46 -
 .../tdb/base/file/BufferAllocatorMapped.java    |  145 -
 .../jena/tdb/base/file/BufferAllocatorMem.java  |   46 -
 .../hpl/jena/tdb/base/file/BufferChannel.java   |   92 -
 .../jena/tdb/base/file/BufferChannelFile.java   |  174 -
 .../jena/tdb/base/file/BufferChannelMem.java    |  239 -
 .../hpl/jena/tdb/base/file/ChannelManager.java  |  125 -
 .../com/hp/hpl/jena/tdb/base/file/FileBase.java |  114 -
 .../hpl/jena/tdb/base/file/FileException.java   |   29 -
 .../hp/hpl/jena/tdb/base/file/FileFactory.java  |   50 -
 .../com/hp/hpl/jena/tdb/base/file/FileSet.java  |  115 -
 .../com/hp/hpl/jena/tdb/base/file/Location.java |  268 -
 .../hp/hpl/jena/tdb/base/file/LocationLock.java |  282 -
 .../com/hp/hpl/jena/tdb/base/file/MetaFile.java |  373 -
 .../hp/hpl/jena/tdb/base/file/PlainFile.java    |   59 -
 .../hp/hpl/jena/tdb/base/file/PlainFileMem.java |   55 -
 .../jena/tdb/base/file/PlainFilePersistent.java |   68 -
 .../jena/tdb/base/objectfile/ObjectFile.java    |   79 -
 .../tdb/base/objectfile/ObjectFileLogger.java   |  139 -
 .../tdb/base/objectfile/ObjectFileStorage.java  |  482 --
 .../tdb/base/objectfile/ObjectFileSwitcher.java |   46 -
 .../tdb/base/objectfile/ObjectFileWrapper.java  |   77 -
 .../jena/tdb/base/objectfile/StringFile.java    |  143 -
 .../com/hp/hpl/jena/tdb/base/page/Page.java     |   38 -
 .../com/hp/hpl/jena/tdb/base/page/PageBase.java |   59 -
 .../hp/hpl/jena/tdb/base/page/PageBlockMgr.java |  142 -
 .../com/hp/hpl/jena/tdb/base/record/Record.java |  232 -
 .../jena/tdb/base/record/RecordException.java   |   27 -
 .../hpl/jena/tdb/base/record/RecordFactory.java |  180 -
 .../tdb/base/recordbuffer/RecordBufferPage.java |   95 -
 .../base/recordbuffer/RecordBufferPageBase.java |  113 -
 .../base/recordbuffer/RecordBufferPageMgr.java  |  100 -
 .../base/recordbuffer/RecordRangeIterator.java  |  166 -
 .../jena/tdb/graph/BulkUpdateHandlerTDB.java    |   56 -
 .../jena/tdb/graph/TransactionHandlerTDB.java   |   62 -
 .../hp/hpl/jena/tdb/index/BuilderStdIndex.java  |  109 -
 .../java/com/hp/hpl/jena/tdb/index/Index.java   |   68 -
 .../com/hp/hpl/jena/tdb/index/IndexBuilder.java |   26 -
 .../com/hp/hpl/jena/tdb/index/IndexFactory.java |   91 -
 .../com/hp/hpl/jena/tdb/index/IndexLib.java     |   41 -
 .../com/hp/hpl/jena/tdb/index/IndexLogger.java  |   66 -
 .../com/hp/hpl/jena/tdb/index/IndexMap.java     |  172 -
 .../com/hp/hpl/jena/tdb/index/IndexParams.java  |   38 -
 .../com/hp/hpl/jena/tdb/index/IndexWrapper.java |   80 -
 .../com/hp/hpl/jena/tdb/index/RangeIndex.java   |   36 -
 .../hpl/jena/tdb/index/RangeIndexBuilder.java   |   26 -
 .../hp/hpl/jena/tdb/index/RangeIndexLogger.java |   73 -
 .../hpl/jena/tdb/index/RangeIndexWrapper.java   |  101 -
 .../com/hp/hpl/jena/tdb/index/SetupIndex.java   |  173 -
 .../tdb/index/bplustree/BPTreeException.java    |   27 -
 .../jena/tdb/index/bplustree/BPTreeNode.java    | 1543 ----
 .../tdb/index/bplustree/BPTreeNodeBuilder.java  |  176 -
 .../jena/tdb/index/bplustree/BPTreeNodeMgr.java |  272 -
 .../jena/tdb/index/bplustree/BPTreePage.java    |  131 -
 .../jena/tdb/index/bplustree/BPTreePageMgr.java |   38 -
 .../jena/tdb/index/bplustree/BPTreeRecords.java |  349 -
 .../tdb/index/bplustree/BPTreeRecordsMgr.java   |   97 -
 .../hpl/jena/tdb/index/bplustree/BPlusTree.java |  492 --
 .../tdb/index/bplustree/BPlusTreeParams.java    |  285 -
 .../tdb/index/bplustree/BPlusTreeRewriter.java  |  391 -
 .../index/bplustree/BPlusTreeRewriterUtils.java |  111 -
 .../tdb/index/bplustree/BPlusTreeTools.java     |  157 -
 .../index/bplustree/RecordBufferPageLinker.java |   86 -
 .../index/bplustree/RecordBufferPagePacker.java |   94 -
 .../com/hp/hpl/jena/tdb/index/ext/ExtHash.java  |  729 --
 .../hpl/jena/tdb/index/ext/ExtHashIterator.java |   94 -
 .../hpl/jena/tdb/index/ext/ExtHashParams.java   |   31 -
 .../hp/hpl/jena/tdb/index/ext/HashBucket.java   |  183 -
 .../hpl/jena/tdb/index/ext/HashBucketMgr.java   |  129 -
 .../java/com/hp/hpl/jena/tdb/lib/DumpOps.java   |  185 -
 .../main/java/com/hp/hpl/jena/tdb/lib/Lib2.java |   46 -
 .../java/com/hp/hpl/jena/tdb/lib/NodeLib.java   |  234 -
 .../com/hp/hpl/jena/tdb/lib/StringAbbrev.java   |   81 -
 .../java/com/hp/hpl/jena/tdb/lib/TupleLib.java  |  196 -
 .../java/com/hp/hpl/jena/tdb/mgt/TDBMgt.java    |   33 -
 .../com/hp/hpl/jena/tdb/mgt/TDBSystemInfo.java  |   42 -
 .../hp/hpl/jena/tdb/mgt/TDBSystemInfoMBean.java |   54 -
 .../java/com/hp/hpl/jena/tdb/migrate/A2.java    |   38 -
 .../com/hp/hpl/jena/tdb/migrate/CachingPF.java  |   52 -
 .../com/hp/hpl/jena/tdb/migrate/LockTx.java     |   72 -
 .../jena/tdb/migrate/TransformGraphRename.java  |   54 -
 .../hp/hpl/jena/tdb/modify/UpdateEngineTDB.java |   55 -
 .../hp/hpl/jena/tdb/setup/BlockMgrBuilder.java  |   27 -
 .../java/com/hp/hpl/jena/tdb/setup/Build.java   |  150 -
 .../com/hp/hpl/jena/tdb/setup/BuilderStdDB.java |  100 -
 .../hp/hpl/jena/tdb/setup/DatasetBuilder.java   |   33 -
 .../hpl/jena/tdb/setup/DatasetBuilderBasic.java |  198 -
 .../hpl/jena/tdb/setup/DatasetBuilderStd.java   |  496 --
 .../hp/hpl/jena/tdb/setup/NodeTableBuilder.java |   26 -
 .../hpl/jena/tdb/setup/ObjectFileBuilder.java   |   26 -
 .../com/hp/hpl/jena/tdb/setup/StoreParams.java  |  475 --
 .../hpl/jena/tdb/setup/StoreParamsBuilder.java  |  344 -
 .../hp/hpl/jena/tdb/setup/StoreParamsCodec.java |  215 -
 .../hp/hpl/jena/tdb/setup/StoreParamsConst.java |  118 -
 .../hpl/jena/tdb/setup/StoreParamsDynamic.java  |   54 -
 .../hpl/jena/tdb/setup/TupleIndexBuilder.java   |   28 -
 .../com/hp/hpl/jena/tdb/solver/Abortable.java   |   21 -
 .../hp/hpl/jena/tdb/solver/BindingNodeId.java   |  114 -
 .../com/hp/hpl/jena/tdb/solver/BindingTDB.java  |  156 -
 .../hp/hpl/jena/tdb/solver/OpExecutorTDB1.java  |  428 --
 .../java/com/hp/hpl/jena/tdb/solver/QC2.java    |   49 -
 .../hp/hpl/jena/tdb/solver/QueryEngineTDB.java  |  212 -
 .../hp/hpl/jena/tdb/solver/QueryIterTDB.java    |   59 -
 .../jena/tdb/solver/QueryIteratorIdToNode.java  |   68 -
 .../com/hp/hpl/jena/tdb/solver/SolverLib.java   |  374 -
 .../tdb/solver/StageGeneratorDirectTDB.java     |   58 -
 .../hp/hpl/jena/tdb/solver/StageMatchTuple.java |  211 -
 .../com/hp/hpl/jena/tdb/solver/stats/Stats.java |  139 -
 .../jena/tdb/solver/stats/StatsCollector.java   |   36 -
 .../tdb/solver/stats/StatsCollectorBase.java    |   56 -
 .../tdb/solver/stats/StatsCollectorNodeId.java  |   56 -
 .../hpl/jena/tdb/solver/stats/StatsResults.java |   53 -
 .../hp/hpl/jena/tdb/store/DatasetGraphTDB.java  |  304 -
 .../tdb/store/DatasetPrefixStorageLogger.java   |  123 -
 .../hpl/jena/tdb/store/DatasetPrefixesTDB.java  |  181 -
 .../com/hp/hpl/jena/tdb/store/DateTimeNode.java |  265 -
 .../com/hp/hpl/jena/tdb/store/DecimalNode.java  |  152 -
 .../com/hp/hpl/jena/tdb/store/GraphTDB.java     |  309 -
 .../java/com/hp/hpl/jena/tdb/store/Hash.java    |   57 -
 .../com/hp/hpl/jena/tdb/store/IntegerNode.java  |   51 -
 .../java/com/hp/hpl/jena/tdb/store/NodeId.java  |  382 -
 .../com/hp/hpl/jena/tdb/store/NodeType.java     |  200 -
 .../com/hp/hpl/jena/tdb/store/QuadTable.java    |  104 -
 .../com/hp/hpl/jena/tdb/store/SinkProgress.java |  160 -
 .../hp/hpl/jena/tdb/store/StorageConfig.java    |   52 -
 .../com/hp/hpl/jena/tdb/store/TableBase.java    |   61 -
 .../com/hp/hpl/jena/tdb/store/TripleTable.java  |   93 -
 .../bulkloader/BuilderSecondaryIndexes.java     |   26 -
 .../BuilderSecondaryIndexesInterleaved.java     |   46 -
 .../BuilderSecondaryIndexesParallel.java        |   72 -
 .../BuilderSecondaryIndexesSequential.java      |   52 -
 .../jena/tdb/store/bulkloader/BulkLoader.java   |  379 -
 .../tdb/store/bulkloader/BulkStreamRDF.java     |   27 -
 .../jena/tdb/store/bulkloader/LoadMonitor.java  |  279 -
 .../store/bulkloader/LoaderNodeTupleTable.java  |  216 -
 .../tdb/store/bulkloader2/CmdIndexBuild.java    |  136 -
 .../tdb/store/bulkloader2/CmdIndexCopy.java     |  125 -
 .../store/bulkloader2/CmdNodeTableBuilder.java  |  296 -
 .../tdb/store/bulkloader2/RecordsFromInput.java |  155 -
 .../jena/tdb/store/bulkloader2/WriteRows.java   |   86 -
 .../hpl/jena/tdb/store/nodetable/NodeTable.java |   65 -
 .../tdb/store/nodetable/NodeTableCache.java     |  282 -
 .../tdb/store/nodetable/NodeTableInline.java    |   72 -
 .../jena/tdb/store/nodetable/NodeTableLib.java  |   43 -
 .../tdb/store/nodetable/NodeTableLogger.java    |  137 -
 .../tdb/store/nodetable/NodeTableNative.java    |  283 -
 .../tdb/store/nodetable/NodeTableReadonly.java  |   40 -
 .../tdb/store/nodetable/NodeTableWrapper.java   |   88 -
 .../hp/hpl/jena/tdb/store/nodetable/Nodec.java  |   56 -
 .../hpl/jena/tdb/store/nodetable/NodecLib.java  |   97 -
 .../hpl/jena/tdb/store/nodetable/NodecSSE.java  |  210 -
 .../store/nodetupletable/NodeTupleTable.java    |   77 -
 .../nodetupletable/NodeTupleTableConcrete.java  |  258 -
 .../nodetupletable/NodeTupleTableView.java      |  106 -
 .../nodetupletable/NodeTupleTableWrapper.java   |  106 -
 .../jena/tdb/store/tupletable/TupleIndex.java   |   70 -
 .../tdb/store/tupletable/TupleIndexBase.java    |  124 -
 .../tdb/store/tupletable/TupleIndexRecord.java  |  254 -
 .../tdb/store/tupletable/TupleIndexWrapper.java |  104 -
 .../jena/tdb/store/tupletable/TupleTable.java   |  275 -
 .../com/hp/hpl/jena/tdb/sys/DatasetControl.java |   43 -
 .../hp/hpl/jena/tdb/sys/DatasetControlMRSW.java |  161 -
 .../hpl/jena/tdb/sys/DatasetControlMutable.java |   60 -
 .../hp/hpl/jena/tdb/sys/DatasetControlNone.java |   49 -
 .../jena/tdb/sys/DatasetControlReadOnly.java    |   60 -
 .../java/com/hp/hpl/jena/tdb/sys/DebugTDB.java  |  132 -
 .../java/com/hp/hpl/jena/tdb/sys/EnvTDB.java    |   62 -
 .../java/com/hp/hpl/jena/tdb/sys/FileRef.java   |  189 -
 .../com/hp/hpl/jena/tdb/sys/LockMRSWLite.java   |   79 -
 .../java/com/hp/hpl/jena/tdb/sys/Names.java     |  142 -
 .../com/hp/hpl/jena/tdb/sys/ProcessUtils.java   |  157 -
 .../java/com/hp/hpl/jena/tdb/sys/Session.java   |   46 -
 .../java/com/hp/hpl/jena/tdb/sys/SetupTDB.java  |  258 -
 .../java/com/hp/hpl/jena/tdb/sys/SystemTDB.java |  407 --
 .../com/hp/hpl/jena/tdb/sys/TDBInternal.java    |  134 -
 .../java/com/hp/hpl/jena/tdb/sys/TDBMaker.java  |  128 -
 .../jena/tdb/transaction/BlockMgrJournal.java   |  385 -
 .../jena/tdb/transaction/DatasetBuilderTxn.java |  187 -
 .../transaction/DatasetGraphTransaction.java    |  276 -
 .../jena/tdb/transaction/DatasetGraphTxn.java   |   67 -
 .../hp/hpl/jena/tdb/transaction/Journal.java    |  307 -
 .../jena/tdb/transaction/JournalControl.java    |  313 -
 .../hpl/jena/tdb/transaction/JournalEntry.java  |  103 -
 .../jena/tdb/transaction/JournalEntryType.java  |   46 -
 .../jena/tdb/transaction/NodeTableTrans.java    |  412 --
 .../jena/tdb/transaction/ObjectFileTrans.java   |  241 -
 .../hpl/jena/tdb/transaction/SysTxnState.java   |   52 -
 .../transaction/TDBTransactionException.java    |   29 -
 .../hpl/jena/tdb/transaction/Transaction.java   |  331 -
 .../jena/tdb/transaction/TransactionAbort.java  |   27 -
 .../jena/tdb/transaction/TransactionInfo.java   |   69 -
 .../tdb/transaction/TransactionInfoMBean.java   |   47 -
 .../tdb/transaction/TransactionLifecycle.java   |   44 -
 .../tdb/transaction/TransactionManager.java     |  794 --
 .../hp/hpl/jena/tdb/transaction/TxnState.java   |   21 -
 .../org/apache/jena/tdb/StoreConnection.java    |  305 +
 .../src/main/java/org/apache/jena/tdb/TDB.java  |  282 +
 .../java/org/apache/jena/tdb/TDBBackup.java     |   62 +
 .../java/org/apache/jena/tdb/TDBException.java  |   29 +
 .../java/org/apache/jena/tdb/TDBFactory.java    |  145 +
 .../java/org/apache/jena/tdb/TDBLoader.java     |  279 +
 .../apache/jena/tdb/assembler/AssemblerTDB.java |   29 +
 .../jena/tdb/assembler/DatasetAssemblerTDB.java |   78 +
 .../jena/tdb/assembler/IndexAssembler.java      |   91 +
 .../jena/tdb/assembler/NodeTableAssembler.java  |   61 +
 .../jena/tdb/assembler/SettingAssembler.java    |   49 +
 .../jena/tdb/assembler/TDBGraphAssembler.java   |  125 +
 .../org/apache/jena/tdb/assembler/Vocab.java    |   41 +
 .../org/apache/jena/tdb/assembler/VocabTDB.java |   95 +
 .../apache/jena/tdb/base/StorageException.java  |   27 +
 .../org/apache/jena/tdb/base/block/Block.java   |  179 +
 .../jena/tdb/base/block/BlockConverter.java     |   33 +
 .../jena/tdb/base/block/BlockException.java     |   29 +
 .../apache/jena/tdb/base/block/BlockMgr.java    |  105 +
 .../jena/tdb/base/block/BlockMgrBase.java       |   57 +
 .../jena/tdb/base/block/BlockMgrCache.java      |  363 +
 .../jena/tdb/base/block/BlockMgrFactory.java    |  151 +
 .../jena/tdb/base/block/BlockMgrFileAccess.java |  158 +
 .../jena/tdb/base/block/BlockMgrFreeChain.java  |   82 +
 .../jena/tdb/base/block/BlockMgrLogger.java     |  211 +
 .../jena/tdb/base/block/BlockMgrReadonly.java   |   53 +
 .../jena/tdb/base/block/BlockMgrSwitcher.java   |   40 +
 .../jena/tdb/base/block/BlockMgrSync.java       |  197 +
 .../jena/tdb/base/block/BlockMgrTracker.java    |  469 ++
 .../jena/tdb/base/block/BlockMgrWrapper.java    |  179 +
 .../apache/jena/tdb/base/block/BlockParams.java |   27 +
 .../apache/jena/tdb/base/block/BlockType.java   |   70 +
 .../apache/jena/tdb/base/block/FileMode.java    |   27 +
 .../apache/jena/tdb/base/buffer/BufferBase.java |  265 +
 .../jena/tdb/base/buffer/BufferException.java   |   27 +
 .../apache/jena/tdb/base/buffer/PtrBuffer.java  |  142 +
 .../jena/tdb/base/buffer/RecordBuffer.java      |  246 +
 .../tdb/base/buffer/RecordBufferIterator.java   |   99 +
 .../apache/jena/tdb/base/file/BlockAccess.java  |   52 +
 .../jena/tdb/base/file/BlockAccessBase.java     |  160 +
 .../tdb/base/file/BlockAccessByteArray.java     |  124 +
 .../jena/tdb/base/file/BlockAccessDirect.java   |  125 +
 .../jena/tdb/base/file/BlockAccessMapped.java   |  285 +
 .../jena/tdb/base/file/BlockAccessMem.java      |  164 +
 .../jena/tdb/base/file/BufferAllocator.java     |   43 +
 .../tdb/base/file/BufferAllocatorDirect.java    |   46 +
 .../tdb/base/file/BufferAllocatorMapped.java    |  145 +
 .../jena/tdb/base/file/BufferAllocatorMem.java  |   46 +
 .../jena/tdb/base/file/BufferChannel.java       |   92 +
 .../jena/tdb/base/file/BufferChannelFile.java   |  174 +
 .../jena/tdb/base/file/BufferChannelMem.java    |  238 +
 .../jena/tdb/base/file/ChannelManager.java      |  125 +
 .../org/apache/jena/tdb/base/file/FileBase.java |  114 +
 .../jena/tdb/base/file/FileException.java       |   29 +
 .../apache/jena/tdb/base/file/FileFactory.java  |   50 +
 .../org/apache/jena/tdb/base/file/FileSet.java  |  115 +
 .../org/apache/jena/tdb/base/file/Location.java |  266 +
 .../apache/jena/tdb/base/file/LocationLock.java |  282 +
 .../org/apache/jena/tdb/base/file/MetaFile.java |  373 +
 .../apache/jena/tdb/base/file/PlainFile.java    |   59 +
 .../apache/jena/tdb/base/file/PlainFileMem.java |   55 +
 .../jena/tdb/base/file/PlainFilePersistent.java |   68 +
 .../jena/tdb/base/objectfile/ObjectFile.java    |   78 +
 .../tdb/base/objectfile/ObjectFileLogger.java   |  138 +
 .../tdb/base/objectfile/ObjectFileStorage.java  |  481 ++
 .../tdb/base/objectfile/ObjectFileSwitcher.java |   46 +
 .../tdb/base/objectfile/ObjectFileWrapper.java  |   76 +
 .../jena/tdb/base/objectfile/StringFile.java    |  141 +
 .../org/apache/jena/tdb/base/page/Page.java     |   37 +
 .../org/apache/jena/tdb/base/page/PageBase.java |   58 +
 .../apache/jena/tdb/base/page/PageBlockMgr.java |  141 +
 .../org/apache/jena/tdb/base/record/Record.java |  230 +
 .../jena/tdb/base/record/RecordException.java   |   27 +
 .../jena/tdb/base/record/RecordFactory.java     |  180 +
 .../tdb/base/recordbuffer/RecordBufferPage.java |   95 +
 .../base/recordbuffer/RecordBufferPageBase.java |  111 +
 .../base/recordbuffer/RecordBufferPageMgr.java  |  100 +
 .../base/recordbuffer/RecordRangeIterator.java  |  165 +
 .../jena/tdb/graph/TransactionHandlerTDB.java   |   62 +
 .../apache/jena/tdb/index/BuilderStdIndex.java  |  109 +
 .../java/org/apache/jena/tdb/index/Index.java   |   67 +
 .../org/apache/jena/tdb/index/IndexBuilder.java |   26 +
 .../org/apache/jena/tdb/index/IndexFactory.java |   91 +
 .../org/apache/jena/tdb/index/IndexLib.java     |   39 +
 .../org/apache/jena/tdb/index/IndexLogger.java  |   65 +
 .../org/apache/jena/tdb/index/IndexMap.java     |  171 +
 .../org/apache/jena/tdb/index/IndexParams.java  |   38 +
 .../org/apache/jena/tdb/index/IndexWrapper.java |   80 +
 .../org/apache/jena/tdb/index/RangeIndex.java   |   36 +
 .../jena/tdb/index/RangeIndexBuilder.java       |   26 +
 .../apache/jena/tdb/index/RangeIndexLogger.java |   72 +
 .../jena/tdb/index/RangeIndexWrapper.java       |  101 +
 .../org/apache/jena/tdb/index/SetupIndex.java   |  173 +
 .../tdb/index/bplustree/BPTreeException.java    |   27 +
 .../jena/tdb/index/bplustree/BPTreeNode.java    | 1542 ++++
 .../tdb/index/bplustree/BPTreeNodeBuilder.java  |  175 +
 .../jena/tdb/index/bplustree/BPTreeNodeMgr.java |  272 +
 .../jena/tdb/index/bplustree/BPTreePage.java    |  131 +
 .../jena/tdb/index/bplustree/BPTreePageMgr.java |   38 +
 .../jena/tdb/index/bplustree/BPTreeRecords.java |  348 +
 .../tdb/index/bplustree/BPTreeRecordsMgr.java   |   97 +
 .../jena/tdb/index/bplustree/BPlusTree.java     |  491 ++
 .../tdb/index/bplustree/BPlusTreeParams.java    |  284 +
 .../tdb/index/bplustree/BPlusTreeRewriter.java  |  386 +
 .../index/bplustree/BPlusTreeRewriterUtils.java |  110 +
 .../tdb/index/bplustree/BPlusTreeTools.java     |  156 +
 .../index/bplustree/RecordBufferPageLinker.java |   85 +
 .../index/bplustree/RecordBufferPagePacker.java |   94 +
 .../org/apache/jena/tdb/index/ext/ExtHash.java  |  727 ++
 .../jena/tdb/index/ext/ExtHashIterator.java     |   94 +
 .../jena/tdb/index/ext/ExtHashParams.java       |   31 +
 .../apache/jena/tdb/index/ext/HashBucket.java   |  182 +
 .../jena/tdb/index/ext/HashBucketMgr.java       |  129 +
 .../java/org/apache/jena/tdb/lib/DumpOps.java   |  185 +
 .../main/java/org/apache/jena/tdb/lib/Lib2.java |   46 +
 .../java/org/apache/jena/tdb/lib/NodeLib.java   |  226 +
 .../org/apache/jena/tdb/lib/StringAbbrev.java   |   81 +
 .../java/org/apache/jena/tdb/lib/TupleLib.java  |  170 +
 .../java/org/apache/jena/tdb/mgt/TDBMgt.java    |   33 +
 .../org/apache/jena/tdb/mgt/TDBSystemInfo.java  |   42 +
 .../apache/jena/tdb/mgt/TDBSystemInfoMBean.java |   54 +
 .../java/org/apache/jena/tdb/migrate/A2.java    |   38 +
 .../org/apache/jena/tdb/migrate/CachingPF.java  |   51 +
 .../org/apache/jena/tdb/migrate/LockTx.java     |   71 +
 .../jena/tdb/migrate/TransformGraphRename.java  |   54 +
 .../apache/jena/tdb/modify/UpdateEngineTDB.java |   53 +
 .../apache/jena/tdb/setup/BlockMgrBuilder.java  |   27 +
 .../java/org/apache/jena/tdb/setup/Build.java   |  149 +
 .../org/apache/jena/tdb/setup/BuilderStdDB.java |   99 +
 .../apache/jena/tdb/setup/DatasetBuilder.java   |   33 +
 .../jena/tdb/setup/DatasetBuilderBasic.java     |  197 +
 .../jena/tdb/setup/DatasetBuilderStd.java       |  490 ++
 .../apache/jena/tdb/setup/NodeTableBuilder.java |   26 +
 .../jena/tdb/setup/ObjectFileBuilder.java       |   26 +
 .../org/apache/jena/tdb/setup/StoreParams.java  |  474 ++
 .../jena/tdb/setup/StoreParamsBuilder.java      |  344 +
 .../apache/jena/tdb/setup/StoreParamsCodec.java |  214 +
 .../apache/jena/tdb/setup/StoreParamsConst.java |  118 +
 .../jena/tdb/setup/StoreParamsDynamic.java      |   54 +
 .../jena/tdb/setup/TupleIndexBuilder.java       |   27 +
 .../org/apache/jena/tdb/solver/Abortable.java   |   21 +
 .../apache/jena/tdb/solver/BindingNodeId.java   |  113 +
 .../org/apache/jena/tdb/solver/BindingTDB.java  |  155 +
 .../apache/jena/tdb/solver/OpExecutorTDB1.java  |  428 ++
 .../java/org/apache/jena/tdb/solver/QC2.java    |   49 +
 .../apache/jena/tdb/solver/QueryEngineTDB.java  |  211 +
 .../apache/jena/tdb/solver/QueryIterTDB.java    |   59 +
 .../jena/tdb/solver/QueryIteratorIdToNode.java  |   67 +
 .../org/apache/jena/tdb/solver/SolverLib.java   |  349 +
 .../tdb/solver/StageGeneratorDirectTDB.java     |   58 +
 .../apache/jena/tdb/solver/StageMatchTuple.java |  190 +
 .../org/apache/jena/tdb/solver/stats/Stats.java |  138 +
 .../jena/tdb/solver/stats/StatsCollector.java   |   36 +
 .../tdb/solver/stats/StatsCollectorBase.java    |   54 +
 .../tdb/solver/stats/StatsCollectorNodeId.java  |   56 +
 .../jena/tdb/solver/stats/StatsResults.java     |   53 +
 .../apache/jena/tdb/store/DatasetGraphTDB.java  |  277 +
 .../tdb/store/DatasetPrefixStorageLogger.java   |  122 +
 .../jena/tdb/store/DatasetPrefixesTDB.java      |  180 +
 .../org/apache/jena/tdb/store/DateTimeNode.java |  264 +
 .../org/apache/jena/tdb/store/DecimalNode.java  |  152 +
 .../org/apache/jena/tdb/store/GraphTDB.java     |  285 +
 .../java/org/apache/jena/tdb/store/Hash.java    |   57 +
 .../org/apache/jena/tdb/store/IntegerNode.java  |   51 +
 .../java/org/apache/jena/tdb/store/NodeId.java  |  381 +
 .../org/apache/jena/tdb/store/NodeType.java     |  199 +
 .../org/apache/jena/tdb/store/QuadTable.java    |   94 +
 .../org/apache/jena/tdb/store/SinkProgress.java |  159 +
 .../apache/jena/tdb/store/StorageConfig.java    |   52 +
 .../org/apache/jena/tdb/store/TableBase.java    |   60 +
 .../org/apache/jena/tdb/store/TripleTable.java  |   83 +
 .../bulkloader/BuilderSecondaryIndexes.java     |   26 +
 .../BuilderSecondaryIndexesInterleaved.java     |   46 +
 .../BuilderSecondaryIndexesParallel.java        |   72 +
 .../BuilderSecondaryIndexesSequential.java      |   52 +
 .../jena/tdb/store/bulkloader/BulkLoader.java   |  380 +
 .../tdb/store/bulkloader/BulkStreamRDF.java     |   27 +
 .../jena/tdb/store/bulkloader/LoadMonitor.java  |  278 +
 .../store/bulkloader/LoaderNodeTupleTable.java  |  215 +
 .../tdb/store/bulkloader2/CmdIndexBuild.java    |  135 +
 .../tdb/store/bulkloader2/CmdIndexCopy.java     |  123 +
 .../store/bulkloader2/CmdNodeTableBuilder.java  |  301 +
 .../tdb/store/bulkloader2/RecordsFromInput.java |  154 +
 .../jena/tdb/store/bulkloader2/WriteRows.java   |   86 +
 .../jena/tdb/store/nodetable/NodeTable.java     |   64 +
 .../tdb/store/nodetable/NodeTableCache.java     |  289 +
 .../tdb/store/nodetable/NodeTableInline.java    |   72 +
 .../jena/tdb/store/nodetable/NodeTableLib.java  |   42 +
 .../tdb/store/nodetable/NodeTableLogger.java    |  136 +
 .../tdb/store/nodetable/NodeTableNative.java    |  261 +
 .../tdb/store/nodetable/NodeTableReadonly.java  |   40 +
 .../tdb/store/nodetable/NodeTableWrapper.java   |   87 +
 .../apache/jena/tdb/store/nodetable/Nodec.java  |   56 +
 .../jena/tdb/store/nodetable/NodecLib.java      |   96 +
 .../jena/tdb/store/nodetable/NodecSSE.java      |  209 +
 .../store/nodetupletable/NodeTupleTable.java    |   76 +
 .../nodetupletable/NodeTupleTableConcrete.java  |  257 +
 .../nodetupletable/NodeTupleTableView.java      |  105 +
 .../nodetupletable/NodeTupleTableWrapper.java   |  105 +
 .../jena/tdb/store/tupletable/TupleIndex.java   |   69 +
 .../tdb/store/tupletable/TupleIndexBase.java    |  122 +
 .../tdb/store/tupletable/TupleIndexRecord.java  |  246 +
 .../tdb/store/tupletable/TupleIndexWrapper.java |  103 +
 .../jena/tdb/store/tupletable/TupleTable.java   |  274 +
 .../org/apache/jena/tdb/sys/DatasetControl.java |   43 +
 .../apache/jena/tdb/sys/DatasetControlMRSW.java |  161 +
 .../jena/tdb/sys/DatasetControlMutable.java     |   60 +
 .../apache/jena/tdb/sys/DatasetControlNone.java |   49 +
 .../jena/tdb/sys/DatasetControlReadOnly.java    |   60 +
 .../java/org/apache/jena/tdb/sys/DebugTDB.java  |  131 +
 .../java/org/apache/jena/tdb/sys/EnvTDB.java    |   62 +
 .../java/org/apache/jena/tdb/sys/FileRef.java   |  188 +
 .../org/apache/jena/tdb/sys/LockMRSWLite.java   |   79 +
 .../java/org/apache/jena/tdb/sys/Names.java     |  142 +
 .../org/apache/jena/tdb/sys/ProcessUtils.java   |  157 +
 .../java/org/apache/jena/tdb/sys/Session.java   |   46 +
 .../java/org/apache/jena/tdb/sys/SetupTDB.java  |  257 +
 .../java/org/apache/jena/tdb/sys/SystemTDB.java |  406 +
 .../org/apache/jena/tdb/sys/TDBInternal.java    |  134 +
 .../java/org/apache/jena/tdb/sys/TDBMaker.java  |  119 +
 .../jena/tdb/transaction/BlockMgrJournal.java   |  384 +
 .../jena/tdb/transaction/DatasetBuilderTxn.java |  187 +
 .../transaction/DatasetGraphTransaction.java    |  238 +
 .../jena/tdb/transaction/DatasetGraphTxn.java   |   67 +
 .../apache/jena/tdb/transaction/Journal.java    |  306 +
 .../jena/tdb/transaction/JournalControl.java    |  312 +
 .../jena/tdb/transaction/JournalEntry.java      |  103 +
 .../jena/tdb/transaction/JournalEntryType.java  |   46 +
 .../jena/tdb/transaction/NodeTableTrans.java    |  411 ++
 .../jena/tdb/transaction/ObjectFileTrans.java   |  240 +
 .../jena/tdb/transaction/SysTxnState.java       |   52 +
 .../transaction/TDBTransactionException.java    |   29 +
 .../jena/tdb/transaction/Transaction.java       |  330 +
 .../jena/tdb/transaction/TransactionAbort.java  |   27 +
 .../jena/tdb/transaction/TransactionInfo.java   |   69 +
 .../tdb/transaction/TransactionInfoMBean.java   |   47 +
 .../tdb/transaction/TransactionLifecycle.java   |   44 +
 .../tdb/transaction/TransactionManager.java     |  793 ++
 .../apache/jena/tdb/transaction/TxnState.java   |   21 +
 jena-tdb/src/main/java/tdb/CmdRewriteIndex.java |   31 +-
 jena-tdb/src/main/java/tdb/cmdline/CmdSub.java  |    2 +-
 jena-tdb/src/main/java/tdb/cmdline/CmdTDB.java  |   23 +-
 .../src/main/java/tdb/cmdline/CmdTDBGraph.java  |   18 +-
 .../src/main/java/tdb/cmdline/ModLocation.java  |   13 +-
 .../src/main/java/tdb/cmdline/ModModel.java     |   14 +-
 .../main/java/tdb/cmdline/ModTDBAssembler.java  |    9 +-
 .../main/java/tdb/cmdline/ModTDBDataset.java    |   31 +-
 .../main/java/tdb/cmdline/ModTDBGraphStore.java |   52 -
 jena-tdb/src/main/java/tdb/tdbbackup.java       |    3 +-
 jena-tdb/src/main/java/tdb/tdbconfig.java       |   33 +-
 jena-tdb/src/main/java/tdb/tdbdump.java         |    3 +-
 jena-tdb/src/main/java/tdb/tdbloader.java       |   29 +-
 jena-tdb/src/main/java/tdb/tdbnode.java         |   15 +-
 jena-tdb/src/main/java/tdb/tdbquery.java        |    3 +-
 jena-tdb/src/main/java/tdb/tdbrecovery.java     |    7 +-
 jena-tdb/src/main/java/tdb/tdbreorder.java      |   31 +-
 jena-tdb/src/main/java/tdb/tdbstats.java        |   21 +-
 jena-tdb/src/main/java/tdb/tdbupdate.java       |   20 +-
 jena-tdb/src/main/java/tdb/tools/dumpbpt.java   |  167 +-
 .../src/main/java/tdb/tools/dumpnodetable.java  |  156 +-
 .../src/main/java/tdb/tools/tdbgenindex.java    |   66 +-
 .../java/com/hp/hpl/jena/tdb/ConfigTest.java    |   97 -
 .../test/java/com/hp/hpl/jena/tdb/TC_TDB.java   |   90 -
 .../java/com/hp/hpl/jena/tdb/TS_Factory.java    |   33 -
 .../com/hp/hpl/jena/tdb/TestTDBFactory.java     |  108 -
 .../hpl/jena/tdb/assembler/TS_TDBAssembler.java |   34 -
 .../jena/tdb/assembler/TestTDBAssembler.java    |  145 -
 .../com/hp/hpl/jena/tdb/base/BufferTestLib.java |   63 -
 .../java/com/hp/hpl/jena/tdb/base/TC_Base.java  |   39 -
 .../tdb/base/block/AbstractTestBlockMgr.java    |  133 -
 .../hp/hpl/jena/tdb/base/block/TS_Block.java    |   34 -
 .../jena/tdb/base/block/TestBlockMgrDirect.java |   47 -
 .../jena/tdb/base/block/TestBlockMgrMapped.java |   63 -
 .../jena/tdb/base/block/TestBlockMgrMem.java    |   28 -
 .../tdb/base/block/TestBlockMgrTracked.java     |  148 -
 .../hpl/jena/tdb/base/buffer/TestPtrBuffer.java |  321 -
 .../jena/tdb/base/buffer/TestRecordBuffer.java  |  346 -
 .../file/AbstractTestBlockAccessFixedSize.java  |  101 -
 .../file/AbstractTestBlockAccessVarSize.java    |   51 -
 .../jena/tdb/base/file/AbstractTestChannel.java |  146 -
 .../com/hp/hpl/jena/tdb/base/file/TS_File.java  |   38 -
 .../tdb/base/file/TestBlockAccessByteArray.java |   30 -
 .../tdb/base/file/TestBlockAccessDirect.java    |   44 -
 .../tdb/base/file/TestBlockAccessMapped.java    |   48 -
 .../jena/tdb/base/file/TestBlockAccessMem.java  |   35 -
 .../hpl/jena/tdb/base/file/TestChannelFile.java |   40 -
 .../hpl/jena/tdb/base/file/TestChannelMem.java  |   35 -
 .../jena/tdb/base/file/TestLocationLock.java    |  148 -
 .../hp/hpl/jena/tdb/base/file/TestMetaFile.java |   75 -
 .../base/objectfile/AbstractTestObjectFile.java |  141 -
 .../base/objectfile/AbstractTestStringFile.java |  147 -
 .../jena/tdb/base/objectfile/TS_ObjectFile.java |   34 -
 .../objectfile/TestObjectFileBuffering.java     |  101 -
 .../tdb/base/objectfile/TestObjectFileDisk.java |   49 -
 .../tdb/base/objectfile/TestObjectFileMem.java  |   39 -
 .../tdb/base/objectfile/TestStringFileDisk.java |   50 -
 .../tdb/base/objectfile/TestStringFileMem.java  |   41 -
 .../hp/hpl/jena/tdb/base/record/RecordLib.java  |  121 -
 .../hp/hpl/jena/tdb/base/record/TS_Record.java  |   36 -
 .../hp/hpl/jena/tdb/base/record/TestRecord.java |   80 -
 .../jena/tdb/base/recordfile/TS_RecordFile.java |   32 -
 .../base/recordfile/TestRecordBufferPage.java   |  126 -
 .../hpl/jena/tdb/extra/T_QuadsObjectIsNull.java |  111 -
 .../jena/tdb/extra/T_TDBWriteTransaction.java   |  152 -
 .../hpl/jena/tdb/extra/T_TimeoutTDBPattern.java |  112 -
 .../hp/hpl/jena/tdb/extra/T_TransSystem.java    |  675 --
 .../tdb/extra/T_TransSystemMultiDatasets.java   |  554 --
 .../hpl/jena/tdb/extra/T_TxnDeadlockTest.java   |  142 -
 .../jena/tdb/graph/AbstractTestGraphsTDB.java   |   60 -
 .../com/hp/hpl/jena/tdb/graph/TS_Graph.java     |   37 -
 .../hpl/jena/tdb/graph/TestBulkUpdateTDB.java   |  103 -
 .../tdb/graph/TestDatasetGraphAccessorTDB.java  |   36 -
 .../hpl/jena/tdb/graph/TestDatasetGraphTDB.java |   38 -
 .../jena/tdb/graph/TestGraphOverDatasetTDB.java |   46 -
 .../hp/hpl/jena/tdb/graph/TestGraphsTDB1.java   |   34 -
 .../hp/hpl/jena/tdb/graph/TestGraphsTDB2.java   |   37 -
 .../jena/tdb/graph/TestPrefixMappingTDB.java    |  149 -
 .../hpl/jena/tdb/index/AbstractTestIndex.java   |  157 -
 .../jena/tdb/index/AbstractTestRangeIndex.java  |  435 --
 .../com/hp/hpl/jena/tdb/index/IndexMaker.java   |   25 -
 .../hpl/jena/tdb/index/IndexTestGenerator.java  |   45 -
 .../com/hp/hpl/jena/tdb/index/IndexTestLib.java |  224 -
 .../hp/hpl/jena/tdb/index/RangeIndexMaker.java  |   28 -
 .../com/hp/hpl/jena/tdb/index/TS_Index.java     |   42 -
 .../com/hp/hpl/jena/tdb/index/TestIndexMem.java |   32 -
 .../tdb/index/bplustree/BPlusTreeMaker.java     |   58 -
 .../bplustree/CmdTestBPlusTreeRewriter.java     |  134 -
 .../tdb/index/bplustree/TestBPTreeRecords.java  |  352 -
 .../jena/tdb/index/bplustree/TestBPlusTree.java |   59 -
 .../index/bplustree/TestBPlusTreeRewriter.java  |  200 -
 .../hpl/jena/tdb/index/ext/ExtHashTestBase.java |  166 -
 .../hp/hpl/jena/tdb/index/ext/TestExtHash.java  |   64 -
 .../jena/tdb/junit/AbstractTestGraphTDB.java    |   34 -
 .../java/com/hp/hpl/jena/tdb/junit/Base_TS.java |   50 -
 .../hp/hpl/jena/tdb/junit/GraphLocation.java    |  108 -
 .../com/hp/hpl/jena/tdb/junit/QueryTestTDB.java |  187 -
 .../hp/hpl/jena/tdb/junit/TDBTestException.java |   29 -
 .../hp/hpl/jena/tdb/junit/TestFactoryTDB.java   |   89 -
 .../java/com/hp/hpl/jena/tdb/lib/TS_LibTDB.java |   36 -
 .../com/hp/hpl/jena/tdb/lib/TestNodeLib.java    |   71 -
 .../hp/hpl/jena/tdb/lib/TestStringAbbrev.java   |   60 -
 .../com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java  |   33 -
 .../hp/hpl/jena/tdb/setup/TestStoreParams.java  |  143 -
 .../jena/tdb/setup/TestStoreParamsChoose.java   |  158 -
 .../jena/tdb/setup/TestStoreParamsCreate.java   |  171 -
 .../hp/hpl/jena/tdb/solver/TS_SolverTDB.java    |   31 -
 .../hp/hpl/jena/tdb/solver/TestSolverTDB.java   |  174 -
 .../com/hp/hpl/jena/tdb/solver/TestStats.java   |  114 -
 .../tdb/store/AbstractStoreConnections.java     |  252 -
 .../com/hp/hpl/jena/tdb/store/TS_Store.java     |   64 -
 .../jena/tdb/store/TestConcurrentAccess.java    |  227 -
 .../hp/hpl/jena/tdb/store/TestDatasetTDB.java   |  312 -
 .../jena/tdb/store/TestDatasetTDBPersist.java   |  148 -
 .../jena/tdb/store/TestDynamicDatasetTDB.java   |   38 -
 .../hpl/jena/tdb/store/TestGraphNamedTDB.java   |   43 -
 .../com/hp/hpl/jena/tdb/store/TestGraphTDB.java |   84 -
 .../com/hp/hpl/jena/tdb/store/TestLoader.java   |  166 -
 .../store/TestLocationLockStoreConnection.java  |   98 -
 .../com/hp/hpl/jena/tdb/store/TestNodeId.java   |  260 -
 .../hp/hpl/jena/tdb/store/TestQuadFilter.java   |  132 -
 .../tdb/store/TestStoreConnectionsDirect.java   |   45 -
 .../tdb/store/TestStoreConnectionsMapped.java   |   45 -
 .../hpl/jena/tdb/store/TestSuiteGraphTDB.java   |   41 -
 .../hp/hpl/jena/tdb/store/TestTripleTable.java  |  133 -
 .../hp/hpl/jena/tdb/store/Test_SPARQL_TDB.java  |  232 -
 .../store/nodetable/AbstractTestNodeTable.java  |  107 -
 .../jena/tdb/store/nodetable/TS_NodeTable.java  |   33 -
 .../hpl/jena/tdb/store/nodetable/TestCodec.java |  125 -
 .../jena/tdb/store/nodetable/TestNodeTable.java |   32 -
 .../store/nodetable/TestNodeTableStored.java    |   32 -
 .../tupletable/AbstractTestTupleIndex.java      |  271 -
 .../tdb/store/tupletable/TS_TupleTable.java     |   32 -
 .../store/tupletable/TestTupleIndexRecord.java  |   45 -
 .../tupletable/TestTupleIndexRecordDirect.java  |  321 -
 .../tdb/store/tupletable/TestTupleTable.java    |  160 -
 .../java/com/hp/hpl/jena/tdb/sys/TS_Sys.java    |   35 -
 .../java/com/hp/hpl/jena/tdb/sys/TestOps.java   |   31 -
 .../java/com/hp/hpl/jena/tdb/sys/TestSys.java   |   34 -
 .../transaction/AbstractTestNodeTableTrans.java |  234 -
 .../AbstractTestObjectFileTrans.java            |  155 -
 .../tdb/transaction/AbstractTestTransSeq.java   |  527 --
 .../AbstractTestTransSequentialDisk.java        |   52 -
 .../jena/tdb/transaction/TS_TransactionTDB.java |   56 -
 .../hpl/jena/tdb/transaction/TestJournal.java   |  215 -
 .../tdb/transaction/TestNodeTableTransDisk.java |   52 -
 .../tdb/transaction/TestNodeTableTransMem.java  |   38 -
 .../tdb/transaction/TestObjectFileTransMem.java |   36 -
 .../transaction/TestObjectFileTransStorage.java |   53 -
 .../tdb/transaction/TestTransDiskDirect.java    |   34 -
 .../tdb/transaction/TestTransDiskMapped.java    |   35 -
 .../jena/tdb/transaction/TestTransIterator.java |   85 -
 .../hpl/jena/tdb/transaction/TestTransMem.java  |   42 -
 .../jena/tdb/transaction/TestTransRestart.java  |  142 -
 .../tdb/transaction/TestTransactionTDB.java     |   90 -
 .../transaction/TestTransactionUnionGraph.java  |  188 -
 .../hpl/jena/tdb/transaction/TransTestLib.java  |   64 -
 .../java/org/apache/jena/tdb/ConfigTest.java    |   96 +
 .../test/java/org/apache/jena/tdb/TC_TDB.java   |   89 +
 .../java/org/apache/jena/tdb/TS_Factory.java    |   33 +
 .../org/apache/jena/tdb/TestTDBFactory.java     |  108 +
 .../jena/tdb/assembler/TS_TDBAssembler.java     |   33 +
 .../jena/tdb/assembler/TestTDBAssembler.java    |  145 +
 .../org/apache/jena/tdb/base/BufferTestLib.java |   63 +
 .../java/org/apache/jena/tdb/base/TC_Base.java  |   38 +
 .../tdb/base/block/AbstractTestBlockMgr.java    |  134 +
 .../apache/jena/tdb/base/block/TS_Block.java    |   34 +
 .../jena/tdb/base/block/TestBlockMgrDirect.java |   49 +
 .../jena/tdb/base/block/TestBlockMgrMapped.java |   64 +
 .../jena/tdb/base/block/TestBlockMgrMem.java    |   31 +
 .../tdb/base/block/TestBlockMgrTracked.java     |  142 +
 .../jena/tdb/base/buffer/TestPtrBuffer.java     |  318 +
 .../jena/tdb/base/buffer/TestRecordBuffer.java  |  346 +
 .../file/AbstractTestBlockAccessFixedSize.java  |  102 +
 .../file/AbstractTestBlockAccessVarSize.java    |   50 +
 .../jena/tdb/base/file/AbstractTestChannel.java |  145 +
 .../org/apache/jena/tdb/base/file/TS_File.java  |   38 +
 .../tdb/base/file/TestBlockAccessByteArray.java |   33 +
 .../tdb/base/file/TestBlockAccessDirect.java    |   45 +
 .../tdb/base/file/TestBlockAccessMapped.java    |   49 +
 .../jena/tdb/base/file/TestBlockAccessMem.java  |   38 +
 .../jena/tdb/base/file/TestChannelFile.java     |   39 +
 .../jena/tdb/base/file/TestChannelMem.java      |   35 +
 .../jena/tdb/base/file/TestLocationLock.java    |  149 +
 .../apache/jena/tdb/base/file/TestMetaFile.java |   75 +
 .../base/objectfile/AbstractTestObjectFile.java |  141 +
 .../base/objectfile/AbstractTestStringFile.java |  146 +
 .../jena/tdb/base/objectfile/TS_ObjectFile.java |   34 +
 .../objectfile/TestObjectFileBuffering.java     |  102 +
 .../tdb/base/objectfile/TestObjectFileDisk.java |   50 +
 .../tdb/base/objectfile/TestObjectFileMem.java  |   40 +
 .../tdb/base/objectfile/TestStringFileDisk.java |   49 +
 .../tdb/base/objectfile/TestStringFileMem.java  |   41 +
 .../apache/jena/tdb/base/record/RecordLib.java  |  112 +
 .../apache/jena/tdb/base/record/TS_Record.java  |   35 +
 .../apache/jena/tdb/base/record/TestRecord.java |   78 +
 .../jena/tdb/base/recordfile/TS_RecordFile.java |   32 +
 .../base/recordfile/TestRecordBufferPage.java   |  125 +
 .../jena/tdb/extra/T_QuadsObjectIsNull.java     |  110 +
 .../jena/tdb/extra/T_TDBWriteTransaction.java   |  151 +
 .../jena/tdb/extra/T_TimeoutTDBPattern.java     |  112 +
 .../apache/jena/tdb/extra/T_TransSystem.java    |  674 ++
 .../tdb/extra/T_TransSystemMultiDatasets.java   |  553 ++
 .../jena/tdb/extra/T_TxnDeadlockTest.java       |  141 +
 .../jena/tdb/graph/AbstractTestGraphsTDB.java   |   59 +
 .../org/apache/jena/tdb/graph/TS_Graph.java     |   36 +
 .../tdb/graph/TestDatasetGraphAccessorTDB.java  |   35 +
 .../jena/tdb/graph/TestDatasetGraphTDB.java     |   37 +
 .../jena/tdb/graph/TestGraphOverDatasetTDB.java |   46 +
 .../apache/jena/tdb/graph/TestGraphsTDB1.java   |   34 +
 .../apache/jena/tdb/graph/TestGraphsTDB2.java   |   36 +
 .../jena/tdb/graph/TestPrefixMappingTDB.java    |  148 +
 .../jena/tdb/index/AbstractTestIndex.java       |  154 +
 .../jena/tdb/index/AbstractTestRangeIndex.java  |  435 ++
 .../org/apache/jena/tdb/index/IndexMaker.java   |   27 +
 .../jena/tdb/index/IndexTestGenerator.java      |   45 +
 .../org/apache/jena/tdb/index/IndexTestLib.java |  225 +
 .../apache/jena/tdb/index/RangeIndexMaker.java  |   28 +
 .../org/apache/jena/tdb/index/TS_Index.java     |   41 +
 .../org/apache/jena/tdb/index/TestIndexMem.java |   34 +
 .../tdb/index/bplustree/BPlusTreeMaker.java     |   58 +
 .../bplustree/CmdTestBPlusTreeRewriter.java     |  134 +
 .../tdb/index/bplustree/TestBPTreeRecords.java  |  351 +
 .../jena/tdb/index/bplustree/TestBPlusTree.java |   60 +
 .../index/bplustree/TestBPlusTreeRewriter.java  |  199 +
 .../jena/tdb/index/ext/ExtHashTestBase.java     |  163 +
 .../apache/jena/tdb/index/ext/TestExtHash.java  |   63 +
 .../jena/tdb/junit/AbstractTestGraphTDB.java    |   34 +
 .../java/org/apache/jena/tdb/junit/Base_TS.java |   49 +
 .../apache/jena/tdb/junit/GraphLocation.java    |  107 +
 .../org/apache/jena/tdb/junit/QueryTestTDB.java |  186 +
 .../apache/jena/tdb/junit/TDBTestException.java |   29 +
 .../apache/jena/tdb/junit/TestFactoryTDB.java   |   88 +
 .../java/org/apache/jena/tdb/lib/TS_LibTDB.java |   35 +
 .../org/apache/jena/tdb/lib/TestNodeLib.java    |   70 +
 .../apache/jena/tdb/lib/TestStringAbbrev.java   |   61 +
 .../org/apache/jena/tdb/setup/TS_TDBSetup.java  |   33 +
 .../apache/jena/tdb/setup/TestStoreParams.java  |  145 +
 .../jena/tdb/setup/TestStoreParamsChoose.java   |  161 +
 .../jena/tdb/setup/TestStoreParamsCreate.java   |  172 +
 .../apache/jena/tdb/solver/TS_SolverTDB.java    |   31 +
 .../apache/jena/tdb/solver/TestSolverTDB.java   |  171 +
 .../org/apache/jena/tdb/solver/TestStats.java   |  113 +
 .../tdb/store/AbstractStoreConnections.java     |  251 +
 .../org/apache/jena/tdb/store/TS_Store.java     |   63 +
 .../jena/tdb/store/TestConcurrentAccess.java    |  214 +
 .../apache/jena/tdb/store/TestDatasetTDB.java   |  311 +
 .../jena/tdb/store/TestDatasetTDBPersist.java   |  148 +
 .../jena/tdb/store/TestDynamicDatasetTDB.java   |   41 +
 .../jena/tdb/store/TestGraphNamedTDB.java       |   43 +
 .../org/apache/jena/tdb/store/TestGraphTDB.java |   83 +
 .../org/apache/jena/tdb/store/TestLoader.java   |  167 +
 .../store/TestLocationLockStoreConnection.java  |   97 +
 .../org/apache/jena/tdb/store/TestNodeId.java   |  260 +
 .../apache/jena/tdb/store/TestQuadFilter.java   |  108 +
 .../tdb/store/TestStoreConnectionsDirect.java   |   44 +
 .../tdb/store/TestStoreConnectionsMapped.java   |   44 +
 .../jena/tdb/store/TestSuiteGraphTDB.java       |   40 +
 .../apache/jena/tdb/store/TestTripleTable.java  |  134 +
 .../apache/jena/tdb/store/Test_SPARQL_TDB.java  |  230 +
 .../store/nodetable/AbstractTestNodeTable.java  |  106 +
 .../jena/tdb/store/nodetable/TS_NodeTable.java  |   33 +
 .../jena/tdb/store/nodetable/TestCodec.java     |  124 +
 .../jena/tdb/store/nodetable/TestNodeTable.java |   33 +
 .../store/nodetable/TestNodeTableStored.java    |   33 +
 .../tupletable/AbstractTestTupleIndex.java      |  270 +
 .../tdb/store/tupletable/TS_TupleTable.java     |   32 +
 .../store/tupletable/TestTupleIndexRecord.java  |   45 +
 .../tupletable/TestTupleIndexRecordDirect.java  |  321 +
 .../tdb/store/tupletable/TestTupleTable.java    |  159 +
 .../java/org/apache/jena/tdb/sys/TS_Sys.java    |   34 +
 .../java/org/apache/jena/tdb/sys/TestOps.java   |   32 +
 .../java/org/apache/jena/tdb/sys/TestSys.java   |   33 +
 .../transaction/AbstractTestNodeTableTrans.java |  235 +
 .../AbstractTestObjectFileTrans.java            |  157 +
 .../tdb/transaction/AbstractTestTransSeq.java   |  527 ++
 .../AbstractTestTransSequentialDisk.java        |   51 +
 .../jena/tdb/transaction/TS_TransactionTDB.java |   56 +
 .../jena/tdb/transaction/TestJournal.java       |  217 +
 .../tdb/transaction/TestNodeTableTransDisk.java |   51 +
 .../tdb/transaction/TestNodeTableTransMem.java  |   38 +
 .../tdb/transaction/TestObjectFileTransMem.java |   36 +
 .../transaction/TestObjectFileTransStorage.java |   53 +
 .../tdb/transaction/TestTransDiskDirect.java    |   33 +
 .../tdb/transaction/TestTransDiskMapped.java    |   34 +
 .../jena/tdb/transaction/TestTransIterator.java |   84 +
 .../jena/tdb/transaction/TestTransMem.java      |   41 +
 .../jena/tdb/transaction/TestTransRestart.java  |  142 +
 .../tdb/transaction/TestTransactionTDB.java     |   89 +
 .../transaction/TestTransactionUnionGraph.java  |  185 +
 .../jena/tdb/transaction/TransTestLib.java      |   59 +
 .../testing/Assembler/tdb-dataset-embed.ttl     |    2 +-
 jena-tdb/testing/Assembler/tdb-dataset.ttl      |    2 +-
 jena-tdb/testing/Assembler/tdb-graph-embed.ttl  |    2 +-
 .../testing/Assembler/tdb-graph-ref-dataset.ttl |    2 +-
 jena-tdb/testing/Assembler/tdb-graph.ttl        |    2 +-
 .../testing/Assembler/tdb-named-graph-1.ttl     |    2 +-
 .../testing/Assembler/tdb-named-graph-2.ttl     |    2 +-
 jena-text/ReleaseNotes.txt                      |    8 -
 jena-text/pom.xml                               |   11 +-
 .../main/java/examples/JenaTextExample1.java    |   15 +-
 jena-text/src/main/java/jena/textindexdump.java |   13 +-
 jena-text/src/main/java/jena/textindexer.java   |   11 +-
 .../jena/query/text/DatasetGraphText.java       |   25 +-
 .../java/org/apache/jena/query/text/Entity.java |   18 +-
 .../jena/query/text/EntityDefinition.java       |   79 +-
 .../jena/query/text/TextDatasetFactory.java     |  120 +-
 .../apache/jena/query/text/TextDocProducer.java |    8 +-
 .../query/text/TextDocProducerEntities.java     |   26 +-
 .../jena/query/text/TextDocProducerTriples.java |   44 +-
 .../org/apache/jena/query/text/TextHit.java     |   41 +
 .../jena/query/text/TextHitConverter.java       |   51 +
 .../org/apache/jena/query/text/TextIndex.java   |   16 +-
 .../apache/jena/query/text/TextIndexConfig.java |   61 +
 .../jena/query/text/TextIndexException.java     |    2 +-
 .../apache/jena/query/text/TextIndexLucene.java |  165 +-
 .../query/text/TextIndexLuceneMultilingual.java |   75 +
 .../query/text/TextIndexParseException.java     |   40 +
 .../apache/jena/query/text/TextIndexSolr.java   |  176 +-
 .../org/apache/jena/query/text/TextQuery.java   |   17 +-
 .../apache/jena/query/text/TextQueryFuncs.java  |   14 +-
 .../org/apache/jena/query/text/TextQueryPF.java |  191 +-
 .../apache/jena/query/text/analyzer/Util.java   |   96 +
 .../assembler/EntityDefinitionAssembler.java    |  166 +-
 .../assembler/KeywordAnalyzerAssembler.java     |   11 +-
 .../assembler/LocalizedAnalyzerAssembler.java   |   60 +
 .../LowerCaseKeywordAnalyzerAssembler.java      |   13 +-
 .../text/assembler/SimpleAnalyzerAssembler.java |   13 +-
 .../assembler/StandardAnalyzerAssembler.java    |   95 +-
 .../query/text/assembler/TextAssembler.java     |   11 +-
 .../text/assembler/TextDatasetAssembler.java    |   71 +-
 .../assembler/TextIndexLuceneAssembler.java     |   63 +-
 .../text/assembler/TextIndexSolrAssembler.java  |   11 +-
 .../jena/query/text/assembler/TextVocab.java    |   14 +-
 .../AbstractTestDatasetWithGraphTextIndex.java  |  245 +-
 ...ractTestDatasetWithLuceneGraphTextIndex.java |   19 +-
 ...tasetWithLuceneTextIndexDeletionSupport.java |   53 +
 .../text/AbstractTestDatasetWithTextIndex.java  |  387 +-
 .../AbstractTestDatasetWithTextIndexBase.java   |  180 +-
 .../org/apache/jena/query/text/TS_Text.java     |    6 +-
 .../jena/query/text/TestBuildTextDataset.java   |   14 +-
 .../TestDatasetWithEmbeddedSolrTextIndex.java   |   44 +-
 .../text/TestDatasetWithKeywordAnalyzer.java    |  209 +-
 .../text/TestDatasetWithLocalizedAnalyzer.java  |  147 +
 ...TestDatasetWithLowerCaseKeywordAnalyzer.java |   50 +-
 .../TestDatasetWithLuceneGraphTextIndex.java    |   12 +-
 ...tDatasetWithLuceneMultilingualTextIndex.java |  238 +
 .../text/TestDatasetWithLuceneTextIndex.java    |   13 +-
 ...tasetWithLuceneTextIndexDeletionSupport.java |  109 +
 ...DatasetWithLuceneTextIndexWithLangField.java |  126 +
 .../text/TestDatasetWithSimpleAnalyzer.java     |  187 +-
 .../text/TestDatasetWithStandardAnalyzer.java   |  227 +-
 .../text/TestLuceneWithMultipleThreads.java     |   31 +-
 .../org/apache/jena/query/text/TestTextTDB.java |   18 +-
 .../apache/jena/query/text/TextSearchUtil.java  |    4 +-
 .../assembler/AbstractTestTextAssembler.java    |  168 +-
 .../text/assembler/TestEntityMapAssembler.java  |  513 +-
 .../assembler/TestTextDatasetAssembler.java     |  190 +-
 .../assembler/TestTextIndexLuceneAssembler.java |   20 +-
 .../assembler/TestTextIndexSolrAssembler.java   |   81 +-
 jena-text/src/test/resources/log4j.properties   |    4 +-
 jena-text/testing/TextQuery/data.skos           |   36 +
 .../testing/TextQuery/text-config-union.ttl     |    2 +-
 jena-text/testing/TextQuery/text-config.ttl     |    2 +-
 .../testing/TextQuery/text-solr-config.ttl      |    2 +-
 jena-text/text-config.ttl                       |    2 +-
 pom.xml                                         |   33 +-
 8284 files changed, 533550 insertions(+), 546499 deletions(-)
----------------------------------------------------------------------



[15/26] jena git commit: More bug fixes to inlining assignments in extend (JENA-780)

Posted by rv...@apache.org.
More bug fixes to inlining assignments in extend (JENA-780)

This commit adds additional test cases and some bug fixes that cover the
case where there are single use assignments that can be inlined where
the value is only used in the extend we are currently processing which
requires some extra work to make sure we eliminate unused assignments
after we inline them.  It also ensures that subsequent assignments which
can also have assignments inlined into them refer to the correct
expression taking into account previous inlinings that have happened.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d6f516de
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d6f516de
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d6f516de

Branch: refs/heads/jena2
Commit: d6f516decedd40e0339012279a4e392239865cf0
Parents: 985b995
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 15:46:20 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 15:46:20 2015 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 104 +++++++++++--------
 .../TestTransformEliminateAssignments.java      |  32 ++++++
 2 files changed, 93 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/d6f516de/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 4d59fc3..59e77c2 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -78,7 +78,6 @@ import com.hp.hpl.jena.sparql.expr.NodeValue;
  * <ul>
  * <li>Filter Expressions</li>
  * <li>Bind and Select Expressions</li>
- * <li>Group By Expressions</li>
  * <li>Order By Expressions if aggressive in-lining is enabled</li>
  * </ul>
  * <p>
@@ -211,11 +210,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         // Track the assignments for future reference
         this.tracker.putAssignments(opExtend.getVarExprList());
 
-        // TODO Could also eliminate assignments where the value is only used in
-        // a subsequent assignment
-
-        // See if there are any assignments we can eliminate entirely i.e. those
-        // where the assigned value is never used
+        // Eliminate and inline assignments
         VarExprList unusedAssignments = processUnused(opExtend.getVarExprList());
         VarExprList newAssignments = new VarExprList();
         for (Var assignVar : opExtend.getVarExprList().getVars()) {
@@ -229,6 +224,7 @@ public class TransformEliminateAssignments extends TransformCopy {
             Collection<Var> vars = new ArrayList<>();
             ExprVars.varsMentioned(vars, currExpr);
 
+            // See if we can inline anything
             for (Var var : vars) {
                 // Usage count will be 2 if we can eliminate the assignment
                 // First usage is when it is introduced by the assignment and
@@ -242,6 +238,10 @@ public class TransformEliminateAssignments extends TransformCopy {
                     currExpr = ExprTransformer.transform(new ExprTransformSubstitute(var, e), currExpr);
                     this.tracker.getAssignments().remove(var);
 
+                    // Need to update any assignments we may be tracking that
+                    // refer to the variable we just inlined
+                    this.tracker.updateAssignments(var, e);
+
                     // If the assignment to be eliminated was introduced by the
                     // extend we are processing need to remove it from the
                     // VarExprList we are currently building
@@ -271,7 +271,7 @@ public class TransformEliminateAssignments extends TransformCopy {
             if (this.tracker.getUsageCount(var) == 1)
                 singleUse.add(var, assignments.getExpr(var));
         }
-        
+
         // If nothing is single use
         if (singleUse.size() == 0)
             return null;
@@ -367,49 +367,57 @@ public class TransformEliminateAssignments extends TransformCopy {
 
     @Override
     public Op transform(OpGroup opGroup, Op subOp) {
-        if (!this.isApplicable())
-            return super.transform(opGroup, subOp);
-
-        // See what vars are used in the filter
-        Collection<Var> vars = new ArrayList<>();
-        VarExprList exprs = new VarExprList(opGroup.getGroupVars());
-        List<ExprAggregator> aggs = new ArrayList<ExprAggregator>(opGroup.getAggregators());
-        for (Expr expr : exprs.getExprs().values()) {
-            ExprVars.varsMentioned(vars, expr);
-        }
-
-        // Are any of these vars single usage?
-        boolean modified = false;
-        for (Var var : vars) {
-            // Usage count will be 2 if we can eliminate the assignment
-            // First usage is when it is introduced by the assignment and the
-            // second is when it is used now in this group by
-            Expr e = getAssignExpr(var);
-            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
-                // Can go back and eliminate that assignment
-                subOp = eliminateAssignment(subOp, var);
-                // Replace the variable usage with the expression in both the
-                // expressions and the aggregators
-                ExprTransform transform = new ExprTransformSubstitute(var, e);
-                exprs = processVarExprList(exprs, transform);
-                aggs = processAggregators(aggs, transform);
-                this.tracker.getAssignments().remove(var);
-                modified = true;
-            }
-        }
-
-        // Create a new group by if we've substituted any expressions
-        if (modified) {
-            return new OpGroup(subOp, exprs, aggs);
-        }
-
         return super.transform(opGroup, subOp);
+
+        // TODO Unclear if this will work properly or not because group can
+        // introduce new assignments as well as evaluate expressions
+
+        //@formatter:off
+//        if (!this.isApplicable())
+//            return super.transform(opGroup, subOp);
+//
+//        // See what vars are used in the filter
+//        Collection<Var> vars = new ArrayList<>();
+//        VarExprList exprs = new VarExprList(opGroup.getGroupVars());
+//        List<ExprAggregator> aggs = new ArrayList<ExprAggregator>(opGroup.getAggregators());
+//        for (Expr expr : exprs.getExprs().values()) {
+//            ExprVars.varsMentioned(vars, expr);
+//        }
+//
+//        // Are any of these vars single usage?
+//        boolean modified = false;
+//        for (Var var : vars) {
+//            // Usage count will be 2 if we can eliminate the assignment
+//            // First usage is when it is introduced by the assignment and the
+//            // second is when it is used now in this group by
+//            Expr e = getAssignExpr(var);
+//            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+//                // Can go back and eliminate that assignment
+//                subOp = eliminateAssignment(subOp, var);
+//                // Replace the variable usage with the expression in both the
+//                // expressions and the aggregators
+//                ExprTransform transform = new ExprTransformSubstitute(var, e);
+//                exprs = processVarExprList(exprs, transform);
+//                aggs = processAggregators(aggs, transform);
+//                this.tracker.getAssignments().remove(var);
+//                modified = true;
+//            }
+//        }
+//
+//        // Create a new group by if we've substituted any expressions
+//        if (modified) {
+//            return new OpGroup(subOp, exprs, aggs);
+//        }
+//
+//        return super.transform(opGroup, subOp);
+        //@formatter:on
     }
 
     private Op eliminateAssignment(Op subOp, Var var) {
         return Transformer.transform(new TransformRemoveAssignment(var, getAssignExpr(var)), subOp);
     }
 
+    @SuppressWarnings("unused")
     private VarExprList processVarExprList(VarExprList exprs, ExprTransform transform) {
         VarExprList newExprs = new VarExprList();
         for (Var v : exprs.getVars()) {
@@ -420,6 +428,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         return newExprs;
     }
 
+    @SuppressWarnings("unused")
     private List<ExprAggregator> processAggregators(List<ExprAggregator> aggs, ExprTransform transform) {
         List<ExprAggregator> newAggs = new ArrayList<ExprAggregator>();
         for (ExprAggregator agg : aggs) {
@@ -459,6 +468,15 @@ public class TransformEliminateAssignments extends TransformCopy {
             }
         }
 
+        public void updateAssignments(Var v, Expr e) {
+            ExprTransformSubstitute transform = new ExprTransformSubstitute(v, e);
+            for (Var assignVar : this.assignments.keySet()) {
+                Expr assignExpr = this.assignments.get(assignVar);
+                assignExpr = ExprTransformer.transform(transform, assignExpr);
+                this.assignments.put(assignVar, assignExpr);
+            }
+        }
+
         public void incrementDepth() {
             this.depth++;
         }

http://git-wip-us.apache.org/repos/asf/jena/blob/d6f516de/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index cd0904b..7d6cf40 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -145,6 +145,38 @@ public class TestTransformEliminateAssignments {
              "    (table unit)))");
         //@formatter:on
     }
+    
+    @Test
+    public void extend_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (extend ((?x true) (?y ?x) (?z ?y))",
+                                "    (table unit)))"),
+             "(project (?z)",
+             "  (extend (?z true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+    
+    @Test
+    public void extend_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (extend ((?a true) (?b ?a) (?c false) (?d ?c) (?z (|| ?b ?d)))",
+                                "    (table unit)))"),
+             "(project (?z)",
+             "  (extend (?z (|| true false))",
+             "    (table unit)))");
+        //@formatter:on
+    }
 
     @Test
     public void orderby_01() {


[11/26] jena git commit: Further work on eliminating/inlining assignments (JENA-780)

Posted by rv...@apache.org.
Further work on eliminating/inlining assignments (JENA-780)

- Support elimination/inlining to OpGroup and OpTopN
- Only eliminate/inline when expressions are stable
- Only inline into sort conditions if the expression is constant
- Expand test coverage


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/bdcf8a60
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/bdcf8a60
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/bdcf8a60

Branch: refs/heads/jena2
Commit: bdcf8a6056092b04bf644607b6176afd0e834544
Parents: 57cf5dd
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 14:37:58 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 14:39:44 2015 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 193 ++++++++++++++++---
 .../optimize/TransformRemoveAssignment.java     |  18 ++
 .../algebra/optimize/VariableUsagePopper.java   |  18 ++
 .../TestTransformEliminateAssignments.java      | 134 ++++++++++---
 4 files changed, 317 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/bdcf8a60/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index c9bdb7c..91dc435 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -44,45 +44,95 @@ import com.hp.hpl.jena.sparql.algebra.op.OpTopN;
 import com.hp.hpl.jena.sparql.core.Var;
 import com.hp.hpl.jena.sparql.core.VarExprList;
 import com.hp.hpl.jena.sparql.expr.Expr;
+import com.hp.hpl.jena.sparql.expr.ExprAggregator;
+import com.hp.hpl.jena.sparql.expr.ExprLib;
 import com.hp.hpl.jena.sparql.expr.ExprList;
+import com.hp.hpl.jena.sparql.expr.ExprTransform;
 import com.hp.hpl.jena.sparql.expr.ExprTransformSubstitute;
 import com.hp.hpl.jena.sparql.expr.ExprTransformer;
 import com.hp.hpl.jena.sparql.expr.ExprVars;
+import com.hp.hpl.jena.sparql.expr.NodeValue;
 
 /**
- * A transform that tries to remove unecessary assignments
+ * A transform that tries to in-line/eliminate assignments
  * <p>
- * There are two classes of assignments that we can try and remove:
+ * There are two classes of assignments that we can try and in-line/eliminate:
  * </p>
  * <ol>
  * <li>Assignments where the assigned variable is used only once in a subsequent
- * assignment</li>
- * <li>Assignments where the assigned value is never used elsewhere</li>
+ * assignment can be in-lined</li>
+ * <li>Assignments where the assigned value is never used elsewhere can be
+ * eliminated</li>
  * </ol>
  * <p>
  * Both of these changes can only happen inside of projections as otherwise we
  * have to assume that the user may need the resulting variable and thus we
- * leave the assignment alone.
+ * leave the assignment alone. Assignments to be in-lined must also be
+ * deterministic i.e. moving their placement in the query and thus the possible
+ * solutions they might operate must not change their outputs. Whether an
+ * expression is deterministic is defined by {@link ExprLib#isStable(Expr)}.
+ * </p>
+ * <p>
+ * Assignments may be in-lined in the following places:
+ * </p>
+ * <ul>
+ * <li>Filter Expressions</li>
+ * <li>Bind and Select Expressions</li>
+ * <li>Group By Expressions</li>
+ * <li>Order By Expressions if aggressive in-lining is enabled</li>
+ * </ul>
+ * <p>
+ * In the case of order by we only in-line assignments when aggressive mode is
+ * set as the realities of order by are that expressions may be recomputed
+ * multiple times and so in-lining may actually hurt performance in those cases
+ * unless the expression to be in-lined is itself a constant.
  * </p>
- * 
  */
 public class TransformEliminateAssignments extends TransformCopy {
 
     public static Op eliminate(Op op) {
+        return eliminate(op, false);
+    }
+
+    public static Op eliminate(Op op, boolean aggressive) {
         AssignmentTracker tracker = new AssignmentTracker();
         AssignmentPusher pusher = new AssignmentPusher(tracker);
         AssignmentPopper popper = new AssignmentPopper(tracker);
-        Transform transform = new TransformEliminateAssignments(tracker, pusher, popper);
+        Transform transform = new TransformEliminateAssignments(tracker, pusher, popper, aggressive);
 
         return Transformer.transform(transform, op, pusher, popper);
     }
 
-    private OpVisitor before, after;
-    private AssignmentTracker tracker;
+    private final OpVisitor before, after;
+    private final AssignmentTracker tracker;
+    private final boolean aggressive;
 
     private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after) {
+        this(tracker, before, after, false);
+    }
+
+    private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after,
+            boolean aggressive) {
         this.tracker = tracker;
         this.before = before;
+        this.after = after;
+        this.aggressive = aggressive;
+    }
+
+    protected boolean canInline(Expr e) {
+        return ExprLib.isStable(e);
+    }
+
+    protected boolean shouldInline(Expr e) {
+        // Inline everything when being aggressive
+        if (this.aggressive)
+            return true;
+
+        if (e == null)
+            return false;
+
+        // If not being aggressive only inline if the expression is a constant
+        return e.isConstant() || e instanceof NodeValue;
     }
 
     protected boolean isApplicable() {
@@ -121,13 +171,12 @@ public class TransformEliminateAssignments extends TransformCopy {
             // Usage count will be 2 if we can eliminate the assignment
             // First usage is when it is introduced by the assignment and the
             // second is when it is used now in this filter
-            if (this.tracker.getUsageCount(var) == 2 && this.tracker.getAssignments().containsKey(var)) {
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
                 // Can go back and eliminate that assignment
-                subOp = Transformer.transform(
-                        new TransformRemoveAssignment(var, this.tracker.getAssignments().get(var)), subOp);
+                subOp = eliminateAssignment(subOp, var);
                 // Replace the variable usage with the expression
-                exprs = ExprTransformer.transform(
-                        new ExprTransformSubstitute(var, this.tracker.getAssignments().get(var)), exprs);
+                exprs = ExprTransformer.transform(new ExprTransformSubstitute(var, e), exprs);
                 this.tracker.getAssignments().remove(var);
                 modified = true;
             }
@@ -141,6 +190,14 @@ public class TransformEliminateAssignments extends TransformCopy {
         return super.transform(opFilter, subOp);
     }
 
+    private boolean hasAssignment(Var var) {
+        return this.tracker.getAssignments().containsKey(var);
+    }
+
+    private Expr getAssignExpr(Var var) {
+        return this.tracker.getAssignments().get(var);
+    }
+
     @Override
     public Op transform(OpExtend opExtend, Op subOp) {
         // No point tracking assignments if not in a projection as we can't
@@ -152,6 +209,9 @@ public class TransformEliminateAssignments extends TransformCopy {
         // Track the assignments for future reference
         this.tracker.putAssignments(opExtend.getVarExprList());
 
+        // TODO Could also eliminate assignments where the value is only used in
+        // a subsequent assignment
+
         // See if there are any assignments we can eliminate entirely i.e. those
         // where the assigned value is never used
         VarExprList assignments = processUnused(opExtend.getVarExprList());
@@ -203,11 +263,12 @@ public class TransformEliminateAssignments extends TransformCopy {
             // Usage count will be 2 if we can eliminate the assignment
             // First usage is when it is introduced by the assignment and the
             // second is when it is used now in this filter
-            if (this.tracker.getUsageCount(var) == 2 && this.tracker.getAssignments().containsKey(var)) {
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
                 // Can go back and eliminate that assignment
-                subOp = Transformer.transform(
-                        new TransformRemoveAssignment(var, this.tracker.getAssignments().get(var)), subOp);
-                // Replace the variable usage with the expression within the sort conditions
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression within the
+                // sort conditions
                 conditions = processConditions(opOrder.getConditions(), conditions, var);
                 this.tracker.getAssignments().remove(var);
             }
@@ -228,25 +289,113 @@ public class TransformEliminateAssignments extends TransformCopy {
 
         for (SortCondition cond : inputConditions) {
             Expr e = cond.getExpression();
-            e = ExprTransformer.transform(new ExprTransformSubstitute(var, this.tracker.getAssignments().get(var)), e);
+            e = ExprTransformer.transform(new ExprTransformSubstitute(var, getAssignExpr(var)), e);
             outputConditions.add(new SortCondition(e, cond.getDirection()));
         }
-       
+
         return outputConditions;
     }
 
     @Override
     public Op transform(OpTopN opTop, Op subOp) {
-        // TODO Auto-generated method stub
+        if (!this.isApplicable())
+            return super.transform(opTop, subOp);
+
+        // See what vars are used in the sort conditions
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition cond : opTop.getConditions()) {
+            ExprVars.varsMentioned(vars, cond.getExpression());
+        }
+
+        // Are any of these vars single usage?
+        List<SortCondition> conditions = null;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this filter
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
+                // Can go back and eliminate that assignment
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression within the
+                // sort conditions
+                conditions = processConditions(opTop.getConditions(), conditions, var);
+                this.tracker.getAssignments().remove(var);
+            }
+        }
+
+        // Create a new order if we've substituted any expressions
+        if (conditions != null) {
+            return new OpTopN(subOp, opTop.getLimit(), conditions);
+        }
+
         return super.transform(opTop, subOp);
     }
 
     @Override
     public Op transform(OpGroup opGroup, Op subOp) {
-        // TODO Auto-generated method stub
+        if (!this.isApplicable())
+            return super.transform(opGroup, subOp);
+
+        // See what vars are used in the filter
+        Collection<Var> vars = new ArrayList<>();
+        VarExprList exprs = new VarExprList(opGroup.getGroupVars());
+        List<ExprAggregator> aggs = new ArrayList<ExprAggregator>(opGroup.getAggregators());
+        for (Expr expr : exprs.getExprs().values()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+
+        // Are any of these vars single usage?
+        boolean modified = false;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this group by
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+                // Can go back and eliminate that assignment
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression in both the
+                // expressions and the aggregators
+                ExprTransform transform = new ExprTransformSubstitute(var, e);
+                exprs = processVarExprList(exprs, transform);
+                aggs = processAggregators(aggs, transform);
+                this.tracker.getAssignments().remove(var);
+                modified = true;
+            }
+        }
+
+        // Create a new group by if we've substituted any expressions
+        if (modified) {
+            return new OpGroup(subOp, exprs, aggs);
+        }
+
         return super.transform(opGroup, subOp);
     }
 
+    private Op eliminateAssignment(Op subOp, Var var) {
+        return Transformer.transform(new TransformRemoveAssignment(var, getAssignExpr(var)), subOp);
+    }
+
+    private VarExprList processVarExprList(VarExprList exprs, ExprTransform transform) {
+        VarExprList newExprs = new VarExprList();
+        for (Var v : exprs.getVars()) {
+            Expr e = exprs.getExpr(v);
+            Expr e2 = ExprTransformer.transform(transform, e);
+            newExprs.add(v, e2);
+        }
+        return newExprs;
+    }
+
+    private List<ExprAggregator> processAggregators(List<ExprAggregator> aggs, ExprTransform transform) {
+        List<ExprAggregator> newAggs = new ArrayList<ExprAggregator>();
+        for (ExprAggregator agg : aggs) {
+            ExprAggregator e2 = (ExprAggregator) ExprTransformer.transform(transform, agg);
+            newAggs.add(e2);
+        }
+        return newAggs;
+    }
+
     private static class AssignmentTracker extends VariableUsageTracker {
 
         private Map<Var, Expr> assignments = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/jena/blob/bdcf8a60/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
index dba9271..d7c08d4 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import com.hp.hpl.jena.sparql.algebra.Op;

http://git-wip-us.apache.org/repos/asf/jena/blob/bdcf8a60/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
index e73bfee..73e7ec9 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/jena/blob/bdcf8a60/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index 2f2ced9..163ce8c 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -32,13 +32,17 @@ import com.hp.hpl.jena.sparql.sse.SSE;
 public class TestTransformEliminateAssignments {
 
     private void test(String input, String... output) {
+        test(input, false, output);
+    }
+
+    private void test(String input, boolean aggressive, String... output) {
         Op original = SSE.parseOp(input);
-        test(original, output);
+        test(original, aggressive, output);
     }
 
-    private void test(Op original, String... output) {
+    private void test(Op original, boolean aggressive, String... output) {
         // Transform
-        Op actual = TransformEliminateAssignments.eliminate(original);
+        Op actual = TransformEliminateAssignments.eliminate(original, aggressive);
 
         // Check results
         if (output == null) {
@@ -51,17 +55,12 @@ public class TestTransformEliminateAssignments {
         }
     }
 
-    @SuppressWarnings("unused")
-    private void testNoChange(String input) {
-        test(input, (String[]) null);
-    }
-
     private void testNoChange(String... input) {
         test(StrUtils.strjoinNL(input), (String[]) null);
     }
 
     @Test
-    public void eliminate_single_use_extend_01() {
+    public void single_use_extend_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // However we must be inside a projection as otherwise the assigned
@@ -78,7 +77,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void eliminate_single_use_extend_02() {
+    public void single_use_extend_02() {
         // Assignment for ?y can be removed because it is never used
         // However we must be inside a projection as otherwise the assigned
         // variable would be visible and we couldn't eliminate the assignment
@@ -92,9 +91,9 @@ public class TestTransformEliminateAssignments {
              "    (table unit)))");
         //@formatter:on
     }
-    
+
     @Test
-    public void eliminate_single_use_extend_03() {
+    public void single_use_extend_03() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
         // However we must be inside a projection as otherwise the assigned
@@ -111,7 +110,92 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_unchanged_01() {
+    public void single_use_extend_complex_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // BUT we won't do this by default for complex expressions where they
+        // are used in a place where they could be evaluated multiple times
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (order (?x)",
+                                        "    (extend (?x (contains 'foo' 'bar'))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void single_use_extend_complex_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // BUT we won't do this by default for complex expressions where they
+        // are used in a place where they could be evaluated multiple times
+        // EXCEPT if we are doing aggressive in-lining
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (order (?x)",
+                                "    (extend (?x (contains 'foo' 'bar'))",
+                                "      (table unit))))"),
+             true,
+             "(project (?y)",
+             "  (order ((contains 'foo' 'bar'))",
+             "    (table unit)))");
+        //@formatter:on
+    }
+    
+    @Test
+    public void single_use_extend_unstable_01() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (rand))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+    
+    @Test
+    public void single_use_extend_unstable_02() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (uuid))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+    
+    @Test
+    public void single_use_extend_unstable_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (struuid))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+    
+    @Test
+    public void single_use_extend_unstable_04() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // EXCEPT if the expression is unstable in which case we leave it alone
+        //@formatter:off
+        testNoChange(StrUtils.strjoinNL("(project (?y)",
+                                        "  (filter (exprlist ?x)",
+                                        "    (extend (?x (bnode))",
+                                        "      (table unit))))"));
+        //@formatter:on
+    }
+
+    @Test
+    public void single_use_extend_outside_projection_01() {
         // Cannot eliminate as there is no projection so the assigned variable
         // is visible even though in the algebra given it is used only once
         //@formatter:off
@@ -122,7 +206,7 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void single_use_extend_unchanged_02() {
+    public void single_use_extend_outside_projection_02() {
         // Cannot eliminate as there is no projection so the assigned variable
         // is visible even though in the algebra given it is used only once
         //@formatter:off
@@ -133,26 +217,28 @@ public class TestTransformEliminateAssignments {
     }
 
     @Test
-    public void multi_use_extend_unchanged_01() {
+    public void multi_use_extend_01() {
         // As the assigned variable is used multiple times we leave the
         // assignment alone
         //@formatter:off
-        testNoChange("(filter (> (* ?x ?x) 16)",
-                     "  (extend (?x 3)",
-                     "    (table unit)))");
+        testNoChange("(project (?y)",
+                     "  (filter (> (* ?x ?x) 16)",
+                     "    (extend (?x 3)",
+                     "      (table unit))))");
         //@formatter:on
     }
 
     @Test
-    public void multi_use_extend_unchanged_02() {
+    public void multi_use_extend_02() {
         // Because the value of the assignment is used in multiple places we
         // leave the assignment alone
         //@formatter:off
-        testNoChange("(filter (exprlist ?x)",
-                     "  (join",
-                     "    (extend (?x true)",
-                     "      (table unit))",
-                     "    (bgp (triple ?x ?y ?z))))");
+        testNoChange("(project (?y)",
+                     "  (filter (exprlist ?x)",
+                     "    (join",
+                     "      (extend (?x true)",
+                     "        (table unit))",
+                     "      (bgp (triple ?x ?y ?z)))))");
         //@formatter:on
     }
 


[18/26] jena git commit: Some clean up of assignment inlining/elimination (JENA-780)

Posted by rv...@apache.org.
Some clean up of assignment inlining/elimination (JENA-780)

- Add context keys to control it as part of standard optimizer (disabled
  by default)
- When applying it don't apply inside of SERVICE


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/39e4fd59
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/39e4fd59
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/39e4fd59

Branch: refs/heads/master
Commit: 39e4fd590d4b859d8cf416bb928b54b749471483
Parents: d6f516d
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 16:01:55 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 16:01:55 2015 +0100

----------------------------------------------------------------------
 jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java   | 12 ++++++++++++
 .../hp/hpl/jena/sparql/algebra/optimize/Optimize.java   |  4 ++++
 .../algebra/optimize/TransformEliminateAssignments.java |  5 +++--
 3 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/39e4fd59/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java b/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
index 5262c7e..3ebe3bc 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
@@ -403,6 +403,18 @@ public class ARQ
     public static final Symbol optIndexJoinStrategy = ARQConstants.allocSymbol("optIndexJoinStrategy");
     
     /**
+     * Context key controlling whether the standard optimizer applies optimizations where by some
+     * assignments may be eliminated/inlined into the operators where their values are used only once
+     */
+    public static final Symbol optInlineAssignments = ARQConstants.allocSymbol("optInlineAssignments");
+    
+    /**
+     * Context key controlling whether the standard optimizer aggressively inlines assignments whose
+     * values are used only once into operators where those expressions may be evaluated multiple times e.g. order
+     */
+    public static final Symbol optInlineAssignmentsAggressive = ARQConstants.allocSymbol("optInlineAssignmentsAggressive");
+    
+    /**
      * Context key controlling whether the standard optimizater applies optimizations to joined BGPs to
      * merge them into single BGPs.
      * By default, this transformation is applied.

http://git-wip-us.apache.org/repos/asf/jena/blob/39e4fd59/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
index 150e122..180bfd4 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
@@ -236,6 +236,10 @@ public class Optimize implements Rewrite
         if ( context.isTrue(ARQ.optFilterInequality) )
             op = apply("Filter Inequality", new TransformFilterInequality(), op);
         
+        // Eliminate/Inline assignments where possible
+        if ( context.isTrue(ARQ.optInlineAssignments) )
+            op = TransformEliminateAssignments.eliminate(op, context.isTrue(ARQ.optInlineAssignmentsAggressive));
+        
         // Promote table empty as late as possible since this will only be produced by other 
         // optimizations and never directly from algebra generation
         if ( context.isTrueOrUndef(ARQ.optPromoteTableEmpty) )

http://git-wip-us.apache.org/repos/asf/jena/blob/39e4fd59/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 59e77c2..c468272 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -78,7 +78,8 @@ import com.hp.hpl.jena.sparql.expr.NodeValue;
  * <ul>
  * <li>Filter Expressions</li>
  * <li>Bind and Select Expressions</li>
- * <li>Order By Expressions if aggressive in-lining is enabled</li>
+ * <li>Order By Expressions if aggressive in-lining is enabled or the assigned
+ * expression is a constant</li>
  * </ul>
  * <p>
  * In the case of order by we only in-line assignments when aggressive mode is
@@ -99,7 +100,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         AssignmentPopper popper = new AssignmentPopper(tracker);
         Transform transform = new TransformEliminateAssignments(tracker, pusher, popper, aggressive);
 
-        return Transformer.transform(transform, op, pusher, popper);
+        return Transformer.transformSkipService(transform, op, pusher, popper);
     }
 
     private final OpVisitor before, after;


[06/26] jena git commit: Eliminate single use assignments referenced in ORDER BY (JENA-780)

Posted by rv...@apache.org.
Eliminate single use assignments referenced in ORDER BY (JENA-780)

This commit improves TransformEliminateAssignments to be able to
eliminate single use assignments that are used only in ORDER BY sort
conditions


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/62dfb5aa
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/62dfb5aa
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/62dfb5aa

Branch: refs/heads/master
Commit: 62dfb5aa099ccd121a6c798a0e12b63d179c6dab
Parents: 79f8765
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Sep 30 10:34:53 2014 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Sep 30 10:34:53 2014 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 57 +++++++++++++++++++-
 .../TestTransformEliminateAssignments.java      | 17 ++++++
 2 files changed, 73 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/62dfb5aa/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index d24c500..c9bdb7c 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -22,9 +22,12 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.jena.atlas.lib.CollectionUtils;
+
+import com.hp.hpl.jena.query.SortCondition;
 import com.hp.hpl.jena.sparql.algebra.Op;
 import com.hp.hpl.jena.sparql.algebra.OpVisitor;
 import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
@@ -140,9 +143,13 @@ public class TransformEliminateAssignments extends TransformCopy {
 
     @Override
     public Op transform(OpExtend opExtend, Op subOp) {
+        // No point tracking assignments if not in a projection as we can't
+        // possibly eliminate them without a projection to hide the fact that
+        // the assigned value is unnecessary or only used once
         if (!this.tracker.insideProjection())
             return super.transform(opExtend, subOp);
 
+        // Track the assignments for future reference
         this.tracker.putAssignments(opExtend.getVarExprList());
 
         // See if there are any assignments we can eliminate entirely i.e. those
@@ -165,21 +172,69 @@ public class TransformEliminateAssignments extends TransformCopy {
 
         VarExprList modified = new VarExprList();
         for (Var var : assignments.getVars()) {
+            // If an assignment is used more than once then it must be preserved
+            // for now
             if (this.tracker.getUsageCount(var) > 1)
                 modified.add(var, assignments.getExpr(var));
         }
 
+        // If all assignments are used more than once then there are no changes
+        // and we return null
         if (modified.size() == assignments.size())
             return null;
+
         return modified;
     }
 
     @Override
     public Op transform(OpOrder opOrder, Op subOp) {
-        // TODO Auto-generated method stub
+        if (!this.isApplicable())
+            return super.transform(opOrder, subOp);
+
+        // See what vars are used in the sort conditions
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition cond : opOrder.getConditions()) {
+            ExprVars.varsMentioned(vars, cond.getExpression());
+        }
+
+        // Are any of these vars single usage?
+        List<SortCondition> conditions = null;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this filter
+            if (this.tracker.getUsageCount(var) == 2 && this.tracker.getAssignments().containsKey(var)) {
+                // Can go back and eliminate that assignment
+                subOp = Transformer.transform(
+                        new TransformRemoveAssignment(var, this.tracker.getAssignments().get(var)), subOp);
+                // Replace the variable usage with the expression within the sort conditions
+                conditions = processConditions(opOrder.getConditions(), conditions, var);
+                this.tracker.getAssignments().remove(var);
+            }
+        }
+
+        // Create a new order if we've substituted any expressions
+        if (conditions != null) {
+            return new OpOrder(subOp, conditions);
+        }
+
         return super.transform(opOrder, subOp);
     }
 
+    private List<SortCondition> processConditions(List<SortCondition> baseConditions,
+            List<SortCondition> processedConditions, Var var) {
+        List<SortCondition> inputConditions = processedConditions != null ? processedConditions : baseConditions;
+        List<SortCondition> outputConditions = new ArrayList<>();
+
+        for (SortCondition cond : inputConditions) {
+            Expr e = cond.getExpression();
+            e = ExprTransformer.transform(new ExprTransformSubstitute(var, this.tracker.getAssignments().get(var)), e);
+            outputConditions.add(new SortCondition(e, cond.getDirection()));
+        }
+       
+        return outputConditions;
+    }
+
     @Override
     public Op transform(OpTopN opTop, Op subOp) {
         // TODO Auto-generated method stub

http://git-wip-us.apache.org/repos/asf/jena/blob/62dfb5aa/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index ff8b65f..2f2ced9 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -92,6 +92,23 @@ public class TestTransformEliminateAssignments {
              "    (table unit)))");
         //@formatter:on
     }
+    
+    @Test
+    public void eliminate_single_use_extend_03() {
+        // Assigned variable used only once can substitute expression for the
+        // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
+        //@formatter:off
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (order (?x)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+             "(project (?y)",
+             "  (order (true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
 
     @Test
     public void single_use_extend_unchanged_01() {


[25/26] jena git commit: Merge branch 'eliminate-assignments' into jena2 (JENA-780)

Posted by rv...@apache.org.
Merge branch 'eliminate-assignments' into jena2 (JENA-780)

Adds support for the new assignment inlining optimization to the Jena 2
branch.  This optimisation is off by default but can be enabled by the
context switch optInlineAssignments and made aggressive using the context
switch optInlineAssignmentsAggressive


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/b02309f6
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/b02309f6
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/b02309f6

Branch: refs/heads/jena2
Commit: b02309f6df03a56ae8173fade193ec46844c0e49
Parents: 21b5e60 8e052e3
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Jul 7 10:21:31 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Jul 7 10:21:31 2015 +0100

----------------------------------------------------------------------
 .../main/java/com/hp/hpl/jena/query/ARQ.java    |  12 +
 .../jena/sparql/algebra/optimize/Optimize.java  |   6 +
 .../optimize/TransformEliminateAssignments.java | 536 +++++++++++++++++++
 .../optimize/TransformRemoveAssignment.java     | 116 ++++
 .../algebra/optimize/VariableUsagePopper.java   |  57 ++
 .../algebra/optimize/VariableUsagePusher.java   |  59 ++
 .../algebra/optimize/VariableUsageTracker.java  |  92 ++++
 .../algebra/optimize/VariableUsageVisitor.java  | 204 +++++++
 .../algebra/optimize/TS_Optimization.java       |   1 +
 .../TestTransformEliminateAssignments.java      | 431 +++++++++++++++
 10 files changed, 1514 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/b02309f6/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TS_Optimization.java
----------------------------------------------------------------------


[04/26] jena git commit: Fix bug with scope of transform (JENA-780)

Posted by rv...@apache.org.
Fix bug with scope of transform (JENA-780)

This commit fixes the transform so that it is only applied to extend
assignments that occur inside a projection.  If it is not within a
projection we have to assume that the variable may be used and thus must
leave it alone.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/79f8765a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/79f8765a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/79f8765a

Branch: refs/heads/master
Commit: 79f8765ac9caeda095db241621da0566ab7bccca
Parents: 308810f
Author: Rob Vesse <rv...@apache.org>
Authored: Thu Sep 25 16:01:18 2014 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Thu Sep 25 16:01:18 2014 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java |  91 ++++++++++++---
 .../algebra/optimize/VariableUsagePusher.java   |  18 +++
 .../algebra/optimize/VariableUsageTracker.java  |  18 +++
 .../algebra/optimize/VariableUsageVisitor.java  |  18 +++
 .../TestTransformEliminateAssignments.java      | 115 ++++++++++---------
 5 files changed, 190 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 49f8f1c..d24c500 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.ArrayList;
@@ -13,7 +31,6 @@ import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
 import com.hp.hpl.jena.sparql.algebra.Transform;
 import com.hp.hpl.jena.sparql.algebra.TransformCopy;
 import com.hp.hpl.jena.sparql.algebra.Transformer;
-import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
 import com.hp.hpl.jena.sparql.algebra.op.OpExt;
 import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
 import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
@@ -39,15 +56,18 @@ import com.hp.hpl.jena.sparql.expr.ExprVars;
  * assignment</li>
  * <li>Assignments where the assigned value is never used elsewhere</li>
  * </ol>
- * 
- * @author rvesse
+ * <p>
+ * Both of these changes can only happen inside of projections as otherwise we
+ * have to assume that the user may need the resulting variable and thus we
+ * leave the assignment alone.
+ * </p>
  * 
  */
 public class TransformEliminateAssignments extends TransformCopy {
 
     public static Op eliminate(Op op) {
         AssignmentTracker tracker = new AssignmentTracker();
-        VariableUsagePusher pusher = new VariableUsagePusher(tracker);
+        AssignmentPusher pusher = new AssignmentPusher(tracker);
         AssignmentPopper popper = new AssignmentPopper(tracker);
         Transform transform = new TransformEliminateAssignments(tracker, pusher, popper);
 
@@ -62,6 +82,19 @@ public class TransformEliminateAssignments extends TransformCopy {
         this.before = before;
     }
 
+    protected boolean isApplicable() {
+        // Can only be applied if we are inside a projection as otherwise the
+        // assigned variables need to remain visible
+        if (!this.tracker.insideProjection())
+            return false;
+        // If there are no eligible assignments then don't bother doing any work
+        if (this.tracker.assignments.size() == 0)
+            return false;
+
+        // Otherwise may be applicable
+        return true;
+    }
+
     @Override
     public Op transform(OpExt opExt) {
         return opExt.apply(this, this.before, this.after);
@@ -69,6 +102,9 @@ public class TransformEliminateAssignments extends TransformCopy {
 
     @Override
     public Op transform(OpFilter opFilter, Op subOp) {
+        if (!this.isApplicable())
+            return super.transform(opFilter, subOp);
+
         // See what vars are used in the filter
         Collection<Var> vars = new ArrayList<>();
         for (Expr expr : opFilter.getExprs().getList()) {
@@ -103,16 +139,10 @@ public class TransformEliminateAssignments extends TransformCopy {
     }
 
     @Override
-    public Op transform(OpAssign opAssign, Op subOp) {
-        this.tracker.putAssignments(opAssign.getVarExprList());
-        // Note that for assign we don't eliminate instances where its value is
-        // never used because assign has different semantics to extend that
-        // means in such a case it acts more like a filter
-        return super.transform(opAssign, subOp);
-    }
-
-    @Override
     public Op transform(OpExtend opExtend, Op subOp) {
+        if (!this.tracker.insideProjection())
+            return super.transform(opExtend, subOp);
+
         this.tracker.putAssignments(opExtend.getVarExprList());
 
         // See if there are any assignments we can eliminate entirely i.e. those
@@ -165,6 +195,7 @@ public class TransformEliminateAssignments extends TransformCopy {
     private static class AssignmentTracker extends VariableUsageTracker {
 
         private Map<Var, Expr> assignments = new HashMap<>();
+        private int depth = 0;
 
         public Map<Var, Expr> getAssignments() {
             return this.assignments;
@@ -191,6 +222,36 @@ public class TransformEliminateAssignments extends TransformCopy {
             }
         }
 
+        public void incrementDepth() {
+            this.depth++;
+        }
+
+        public void decrementDepth() {
+            this.depth--;
+            // Clear all assignments if not inside a project
+            if (this.depth == 0)
+                this.assignments.clear();
+        }
+
+        public boolean insideProjection() {
+            return this.depth > 0;
+        }
+    }
+
+    private static class AssignmentPusher extends VariableUsagePusher {
+
+        private AssignmentTracker tracker;
+
+        public AssignmentPusher(AssignmentTracker tracker) {
+            super(tracker);
+            this.tracker = tracker;
+        }
+
+        @Override
+        public void visit(OpProject opProject) {
+            super.visit(opProject);
+            this.tracker.incrementDepth();
+        }
     }
 
     private static class AssignmentPopper extends OpVisitorBase {
@@ -204,8 +265,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         @Override
         public void visit(OpProject opProject) {
             // Any assignments that are not projected should be discarded at
-            // this
-            // point
+            // this point
             Iterator<Var> vars = tracker.getAssignments().keySet().iterator();
             while (vars.hasNext()) {
                 Var var = vars.next();
@@ -213,6 +273,7 @@ public class TransformEliminateAssignments extends TransformCopy {
                     vars.remove();
             }
             tracker.pop();
+            this.tracker.decrementDepth();
         }
 
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
index 51a04fb..437a104 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
index f63e41e..770738c 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
index 9fda1c4..664c7b0 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/jena/blob/79f8765a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index 1b73d25..ff8b65f 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
 import org.apache.jena.atlas.lib.StrUtils;
@@ -33,6 +51,7 @@ public class TestTransformEliminateAssignments {
         }
     }
 
+    @SuppressWarnings("unused")
     private void testNoChange(String input) {
         test(input, (String[]) null);
     }
@@ -45,26 +64,54 @@ public class TestTransformEliminateAssignments {
     public void eliminate_single_use_extend_01() {
         // Assigned variable used only once can substitute expression for the
         // later usage of the variable
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
         //@formatter:off
-        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                "  (extend (?x true)",
-                                "    (table unit)))"),
-             "(filter (exprlist true)",
-             "  (table unit))");
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (filter (exprlist ?x)",
+                                "    (extend (?x true)",
+                                "      (table unit))))"),
+             "(project (?y)",
+             "  (filter (exprlist true)",
+             "    (table unit)))");
         //@formatter:on
     }
 
     @Test
     public void eliminate_single_use_extend_02() {
-        // Assigned variable used only once can substitute expression for the
-        // later usage of the variable
-        // The other assignment is removed because it's value is never used
+        // Assignment for ?y can be removed because it is never used
+        // However we must be inside a projection as otherwise the assigned
+        // variable would be visible and we couldn't eliminate the assignment
         //@formatter:off
-        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                "  (extend ((?x true) (?y false))",
-                                "    (table unit)))"),
-             "(filter (exprlist true)",
-             "    (table unit))");
+        test(StrUtils.strjoinNL("(project (?z)",
+                                "  (filter (exprlist ?x)",
+                                "    (extend ((?x true) (?y false))",
+                                "      (table unit))))"),
+             "(project (?z)",
+             "  (filter (exprlist true)",
+             "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void single_use_extend_unchanged_01() {
+        // Cannot eliminate as there is no projection so the assigned variable
+        // is visible even though in the algebra given it is used only once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (extend (?x true)",
+                     "    (table unit)))");
+        //@formatter:on
+    }
+
+    @Test
+    public void single_use_extend_unchanged_02() {
+        // Cannot eliminate as there is no projection so the assigned variable
+        // is visible even though in the algebra given it is used only once
+        //@formatter:off
+        testNoChange("(filter (exprlist ?x)",
+                     "  (extend ((?x true) (?y false))",
+                     "    (table unit)))");
         //@formatter:on
     }
 
@@ -126,46 +173,4 @@ public class TestTransformEliminateAssignments {
             "      (table unit))))");
         //@formatter:on
     }
-
-    @Test
-    public void eliminate_single_use_assign_01() {
-        //@formatter:off
-        test(StrUtils.strjoinNL("(filter (exprlist ?x)",
-                                "  (assign (?x true)",
-                                "    (table unit)))"),
-             "(filter (exprlist true)",
-             "  (table unit))");
-        //@formatter:on
-    }
-
-    @Test
-    public void multi_use_assign_unchanged_01() {
-        //@formatter:off
-        testNoChange("(filter (> (* ?x ?x) 16)",
-                     "  (assign (?x 3)",
-                     "    (table unit)))");
-        //@formatter:on
-    }
-
-    @Test
-    public void multi_use_assign_unchanged_02() {
-        // Left alone because assigned to more than once
-        //@formatter:off
-        testNoChange("(filter (exprlist ?x)",
-                     "  (assign (?x true)",
-                     "    (assign (?x true)",
-                     "      (table unit))))");
-        //@formatter:on
-    }
-
-    @Test
-    public void multi_use_assign_unchanged_03() {
-        // Left alone because assigned to more than once
-        //@formatter:off
-        testNoChange("(filter (exprlist ?x)",
-                     "  (assign (?x true)",
-                     "    (assign (?x false)",
-                     "      (table unit))))");
-        //@formatter:on
-    }
 }


[08/26] jena git commit: Merge branch 'master' into eliminate-assignments

Posted by rv...@apache.org.
Merge branch 'master' into eliminate-assignments

Bring eliminate-assignments up to date with master


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e1a83576
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e1a83576
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e1a83576

Branch: refs/heads/master
Commit: e1a8357697948c5e43f81033d47ef0840061c1db
Parents: 62dfb5a 4554915
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Nov 10 10:51:47 2014 +0000
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Nov 10 10:51:47 2014 +0000

----------------------------------------------------------------------
 apache-jena-libs/pom.xml                        |   12 +-
 apache-jena/assembly-jena-zip.xml               |   11 -
 apache-jena/jena-log4j.properties               |   16 +
 apache-jena/pom.xml                             |   71 +-
 jena-arq/.gitattributes                         |   17 +-
 jena-arq/Grammar/.gitignore                     |    4 +
 jena-arq/Grammar/BinaryRDF.thrift               |   18 +
 jena-arq/Grammar/Final/jj2html_11               |   16 +
 jena-arq/Grammar/JSON/json                      |   16 +
 jena-arq/Grammar/Notes                          |    2 +
 jena-arq/Grammar/XMLchars.txt                   |   56 -
 jena-arq/Grammar/arq.jj                         |  247 +--
 jena-arq/Grammar/gen-thrift                     |    1 +
 jena-arq/Grammar/grammar                        |   20 +-
 jena-arq/Grammar/grammarExtracts                |   16 +
 jena-arq/Grammar/header.jj                      |   18 +
 jena-arq/Grammar/jj2html                        |   16 +
 jena-arq/Grammar/jj2tokens                      |    2 +
 jena-arq/Grammar/master.jj                      |   28 +-
 jena-arq/Grammar/sparql2html                    |    1 +
 jena-arq/Grammar/sparql_11.jj                   |  208 +-
 jena-arq/Grammar/sse/grammar-sse                |   16 +
 jena-arq/Grammar/sse/jj2html                    |  922 ++++-----
 jena-arq/Grammar/sse/sse.jj                     |  490 ++---
 jena-arq/Grammar/sse/tokens.inc                 |  334 ++--
 jena-arq/Grammar/tokens2bnf                     |   88 +-
 jena-arq/bat/make_classpath.bat                 |   20 +
 jena-arq/etc/dataset-db.ttl                     |   16 +
 jena-arq/etc/dataset-owl-inf.ttl                |   16 +
 jena-arq/etc/dataset-owl.ttl                    |   16 +
 jena-arq/etc/dataset-rdfs.ttl                   |   16 +
 jena-arq/etc/dataset-rules.ttl                  |   16 +
 jena-arq/etc/dataset-trans.ttl                  |   16 +
 jena-arq/etc/dataset.ttl                        |   16 +
 jena-arq/etc/graphstore.ttl                     |   16 +
 jena-arq/etc/update-data.ttl                    |   16 +
 jena-arq/log4j.properties                       |   16 +
 jena-arq/pom.xml                                |   14 +-
 .../main/java/arq/cmdline/ModLangOutput.java    |    4 +-
 .../hp/hpl/jena/sparql/algebra/Transformer.java |    1 -
 .../jena/sparql/algebra/optimize/Optimize.java  |    2 +-
 .../optimize/TransformExtendCombine.java        |    9 +-
 .../sparql/core/DatasetGraphCollection.java     |    2 +-
 .../java/com/hp/hpl/jena/sparql/core/Quad.java  |    6 +-
 .../engine/iterator/QueryIterNullIterator.java  |    2 +-
 .../optimizer/reorder/ReorderFixedAlt.java      |   80 +
 .../com/hp/hpl/jena/sparql/expr/E_Scalar.java   |    0
 .../jena/sparql/expr/aggregate/AggCustom.java   |   91 +
 .../hpl/jena/sparql/expr/aggregate/AggNull.java |    2 +-
 .../expr/aggregate/AggregatorFactory.java       |   68 +-
 .../hpl/jena/sparql/lang/ParserARQUpdate.java   |    5 +-
 .../jena/sparql/lang/ParserSPARQL11Update.java  |   28 +-
 .../hp/hpl/jena/sparql/lang/SPARQLParser.java   |    3 -
 .../hp/hpl/jena/sparql/lang/UpdateParser.java   |   18 +-
 .../hp/hpl/jena/sparql/lang/arq/ARQParser.java  | 1399 +++++++------
 .../sparql/lang/arq/ARQParserConstants.java     |  416 ++--
 .../sparql/lang/arq/ARQParserTokenManager.java  | 1880 +++++++++---------
 .../jena/sparql/lang/arq/JavaCharStream.java    |   19 +-
 .../jena/sparql/lang/arq/ParseException.java    |   47 +-
 .../com/hp/hpl/jena/sparql/lang/arq/Token.java  |   19 +-
 .../hpl/jena/sparql/lang/arq/TokenMgrError.java |   21 +-
 .../sparql/lang/sparql_11/JavaCharStream.java   |   19 +-
 .../sparql/lang/sparql_11/ParseException.java   |   47 +-
 .../sparql/lang/sparql_11/SPARQLParser11.java   |  464 ++---
 .../lang/sparql_11/SPARQLParser11Constants.java |  402 ++--
 .../sparql_11/SPARQLParser11TokenManager.java   | 1822 +++++++++--------
 .../hpl/jena/sparql/lang/sparql_11/Token.java   |   19 +-
 .../sparql/lang/sparql_11/TokenMgrError.java    |   21 +-
 .../modify/request/UpdateWriterVisitor.java     |   18 +
 .../hp/hpl/jena/sparql/resultset/CSVInput.java  |    1 -
 .../hpl/jena/sparql/util/NodeFactoryExtra.java  |   73 +-
 .../apache/jena/atlas/RuntimeIOException.java   |   34 +
 .../org/apache/jena/atlas/csv/CSVParser.java    |   67 +-
 .../main/java/org/apache/jena/atlas/io/IO.java  |   13 +-
 .../apache/jena/atlas/io/IndentedWriter.java    |    6 +-
 .../org/apache/jena/atlas/iterator/Iter.java    |   41 +-
 .../java/org/apache/jena/atlas/json/JSON.java   |   19 +-
 .../org/apache/jena/atlas/json/JsonBuilder.java |    2 +
 .../org/apache/jena/atlas/json/JsonObject.java  |    9 +-
 .../apache/jena/atlas/json/io/JsonWriter.java   |    8 +-
 .../java/org/apache/jena/atlas/lib/FileOps.java |  236 ++-
 .../org/apache/jena/atlas/logging/LogCtl.java   |   23 +-
 .../main/java/org/apache/jena/riot/Lang.java    |    3 +
 .../java/org/apache/jena/riot/RDFFormat.java    |   81 +-
 .../java/org/apache/jena/riot/RDFLanguages.java |   43 +-
 .../org/apache/jena/riot/RDFParserRegistry.java |   16 +-
 .../org/apache/jena/riot/RDFWriterRegistry.java |   76 +-
 .../java/org/apache/jena/riot/WebContent.java   |    6 +-
 .../org/apache/jena/riot/lang/ReaderTriX.java   |  440 ++++
 .../java/org/apache/jena/riot/lang/TriX.java    |   59 +
 .../apache/jena/riot/out/JenaRDF2JSONLD.java    |   14 +-
 .../apache/jena/riot/system/StreamRDFLib.java   |    6 +-
 .../jena/riot/system/StreamRDFWriter.java       |   13 +-
 .../org/apache/jena/riot/thrift/BinRDF.java     |    2 +-
 .../org/apache/jena/riot/web/HttpNames.java     |   10 +-
 .../jena/riot/writer/StreamWriterTriX.java      |  263 +++
 .../org/apache/jena/riot/writer/WriterTriX.java |   91 +
 .../algebra/optimize/AbstractTestTransform.java |   16 +-
 .../sparql/algebra/optimize/TestOptimizer.java  |   19 +-
 .../optimize/TestSemanticEquivalence.java       |   16 +-
 .../jena/sparql/negation/TestGraphDeltas.java   |   18 +
 .../hp/hpl/jena/sparql/util/TestFmtUtils.java   |   18 +
 .../apache/jena/atlas/csv/TestCSVParser.java    |    4 +-
 .../apache/jena/atlas/lib/TestAlarmClock.java   |    5 +-
 .../java/org/apache/jena/riot/lang/TS_Lang.java |    4 +
 .../jena/riot/lang/TestCollectorStream.java     |   18 +
 .../org/apache/jena/riot/lang/TestTriXBad.java  |   76 +
 .../apache/jena/riot/lang/TestTriXReader.java   |  126 ++
 .../jena/riot/langsuite/UnitTestEval.java       |    1 +
 .../riot/system/TestFormatRegistration.java     |    3 +
 .../jena/riot/system/TestLangRegistration.java  |    7 +-
 .../apache/jena/riot/writer/TS_RiotWriter.java  |    1 +
 .../jena/riot/writer/TestRiotWriterDataset.java |    3 +
 .../jena/riot/writer/TestRiotWriterGraph.java   |    8 +-
 .../apache/jena/riot/writer/TestTriXWriter.java |   78 +
 jena-arq/testing/RIOT/Lang/.gitattributes       |    1 -
 jena-arq/testing/RIOT/Lang/TriX/trix-01.nq      |    0
 jena-arq/testing/RIOT/Lang/TriX/trix-01.trix    |    4 +
 jena-arq/testing/RIOT/Lang/TriX/trix-02.nq      |    0
 jena-arq/testing/RIOT/Lang/TriX/trix-02.trix    |    4 +
 jena-arq/testing/RIOT/Lang/TriX/trix-03.nq      |    0
 jena-arq/testing/RIOT/Lang/TriX/trix-03.trix    |    7 +
 jena-arq/testing/RIOT/Lang/TriX/trix-04.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-04.trix    |    9 +
 jena-arq/testing/RIOT/Lang/TriX/trix-05.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-05.trix    |   10 +
 jena-arq/testing/RIOT/Lang/TriX/trix-06.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-06.trix    |   10 +
 jena-arq/testing/RIOT/Lang/TriX/trix-10.nq      |    6 +
 jena-arq/testing/RIOT/Lang/TriX/trix-10.trix    |   36 +
 jena-arq/testing/RIOT/Lang/TriX/trix-11.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-11.trix    |   13 +
 jena-arq/testing/RIOT/Lang/TriX/trix-12.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-12.trix    |   14 +
 jena-arq/testing/RIOT/Lang/TriX/trix-13.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-13.trix    |   13 +
 jena-arq/testing/RIOT/Lang/TriX/trix-14.nq      |    1 +
 jena-arq/testing/RIOT/Lang/TriX/trix-14.trix    |   20 +
 jena-arq/testing/RIOT/Lang/TriX/trix-15.nq      |    3 +
 jena-arq/testing/RIOT/Lang/TriX/trix-15.trix    |   21 +
 .../testing/RIOT/Lang/TriX/trix-bad-00.trix     |    4 +
 .../testing/RIOT/Lang/TriX/trix-bad-01.trix     |    6 +
 .../testing/RIOT/Lang/TriX/trix-bad-02.trix     |    7 +
 .../testing/RIOT/Lang/TriX/trix-bad-03.trix     |    8 +
 .../testing/RIOT/Lang/TriX/trix-bad-04.trix     |   10 +
 .../testing/RIOT/Lang/TriX/trix-bad-05.trix     |   11 +
 .../testing/RIOT/Lang/TriX/trix-bad-06.trix     |   10 +
 .../testing/RIOT/Lang/TriX/trix-bad-07.trix     |    7 +
 .../testing/RIOT/Lang/TriX/trix-bad-08.trix     |   11 +
 .../testing/RIOT/Lang/TriX/trix-bad-09.trix     |   11 +
 .../testing/RIOT/Lang/TriX/trix-bad-10.trix     |    9 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-1.trix  |   26 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-2.trix  |   32 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-3.trix  |   30 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-4.trix  |   34 +
 jena-arq/testing/RIOT/Lang/TriX/trix-ex-5.trix  |   42 +
 jena-core/Grammar/turtle                        |   16 +
 jena-core/etc/location-mapping.ex               |   16 +
 jena-core/etc/schemagen_example.rdf             |   16 +
 jena-core/pom.xml                               |   12 +-
 .../main/java/com/hp/hpl/jena/JenaRuntime.java  |   55 +
 .../main/java/com/hp/hpl/jena/graph/Graph.java  |    9 +-
 .../java/com/hp/hpl/jena/graph/GraphAdd.java    |   37 -
 .../com/hp/hpl/jena/graph/compose/Delta.java    |   43 +-
 .../hp/hpl/jena/graph/compose/Difference.java   |    1 -
 .../hp/hpl/jena/graph/compose/Intersection.java |    4 +-
 .../hp/hpl/jena/graph/impl/GraphAddList.java    |   65 -
 .../hp/hpl/jena/graph/impl/GraphMatcher.java    |   28 +-
 jena-core/src/main/java/link2readme.html        |   16 +
 jena-core/src/main/resources/etc/owl-b.rules    |   16 +
 .../src/main/resources/etc/owl-fb-micro.rules   |   16 +
 .../src/main/resources/etc/owl-fb-mini.rules    |   16 +
 .../src/main/resources/etc/owl-fb-old.rules     |   16 +
 jena-core/src/main/resources/etc/owl-fb.rules   |   16 +
 jena-core/src/main/resources/etc/owl.rules      |   16 +
 .../src/main/resources/etc/rdfs-b-tuned.rules   |   16 +
 jena-core/src/main/resources/etc/rdfs-b.rules   |   16 +
 .../main/resources/etc/rdfs-fb-lp-expt.rules    |   16 +
 .../resources/etc/rdfs-fb-tgc-noresource.rules  |   16 +
 .../main/resources/etc/rdfs-fb-tgc-simple.rules |   16 +
 .../src/main/resources/etc/rdfs-fb-tgc.rules    |   16 +
 jena-core/src/main/resources/etc/rdfs-fb.rules  |   16 +
 .../main/resources/etc/rdfs-noresource.rules    |   16 +
 jena-core/src/main/resources/etc/rdfs.rules     |   16 +
 .../src/main/resources/jena-log4j.properties    |   16 +
 jena-core/src/main/resources/ont-policy.rdf     |   16 +
 .../org/apache/jena/vocabulary/assembler.ttl    |   16 +
 .../hpl/jena/graph/compose/test/TestDelta.java  |  149 +-
 .../jena/graph/compose/test/TestDifference.java |  119 +-
 .../hpl/jena/graph/compose/test/TestDyadic.java |    5 +-
 .../graph/compose/test/TestIntersection.java    |  138 +-
 .../jena/graph/compose/test/TestPackage.java    |    9 +-
 .../hpl/jena/graph/compose/test/TestUnion.java  |  120 +-
 .../java/com/hp/hpl/jena/test/TestPackage.java  |    3 +-
 .../com/hp/hpl/jena/test/TestSystemSetup.java   |   39 +
 .../testing/Turtle/RaptorTurtle/README.txt      |    4 +
 .../testing/Turtle/RaptorTurtle/test-10.out     |    4 +-
 jena-csv/LICENSE                                |  202 ++
 jena-csv/NOTICE                                 |    5 +
 jena-csv/ReleaseNotes.txt                       |   14 +
 jena-csv/pom.xml                                |  178 ++
 .../org/apache/jena/propertytable/Column.java   |   45 +
 .../jena/propertytable/PropertyTable.java       |  126 ++
 .../java/org/apache/jena/propertytable/Row.java |   75 +
 .../jena/propertytable/graph/GraphCSV.java      |   62 +
 .../propertytable/graph/GraphPropertyTable.java |  203 ++
 .../graph/QueryIterPropertyTable.java           |  115 ++
 .../graph/QueryIterPropertyTableRow.java        |  243 +++
 .../jena/propertytable/graph/RowMatch.java      |   48 +
 .../graph/StageGeneratorPropertyTable.java      |   57 +
 .../jena/propertytable/impl/ColumnImpl.java     |   58 +
 .../impl/PropertyTableArrayImpl.java            |  346 ++++
 .../impl/PropertyTableBuilder.java              |  136 ++
 .../impl/PropertyTableHashMapImpl.java          |  357 ++++
 .../apache/jena/propertytable/lang/CSV2RDF.java |   33 +
 .../apache/jena/propertytable/lang/LangCSV.java |  155 ++
 .../lang/ReaderRIOTFactoryCSV.java              |   31 +
 .../propertytable/lang/ReaderRIOTLangCSV.java   |   77 +
 .../apache/jena/propertytable/util/IRILib.java  |  264 +++
 jena-csv/src/main/java/riotcmdx/csv2rdf.java    |   53 +
 .../jena/propertytable/AbstractColumnTest.java  |   80 +
 .../AbstractPropertyTableTest.java              |   57 +
 .../jena/propertytable/AbstractRowTest.java     |  106 +
 .../org/apache/jena/propertytable/BaseTest.java |   47 +
 .../jena/propertytable/TS_PropertyTable.java    |   42 +
 .../jena/propertytable/graph/GraphCSVTest.java  |  156 ++
 .../impl/AbstractPropertyTableBuilderTest.java  |  139 ++
 .../impl/PropertyTableArrayImplTest.java        |   84 +
 .../PropertyTableBuilderForArrayImplTest.java   |   39 +
 .../PropertyTableBuilderForHashMapImplTest.java |   34 +
 .../impl/PropertyTableHashMapImplTest.java      |   46 +
 .../jena/propertytable/lang/TestLangCSV.java    |  113 ++
 .../HEFCE_organogram_senior_data_31032011.csv   |    5 +
 .../test/resources/PLOSone-search-results.csv   |    6 +
 jena-csv/src/test/resources/Palo_Alto_Trees.csv |    6 +
 jena-csv/src/test/resources/log4j.properties    |   19 +
 jena-csv/src/test/resources/test.csv            |    3 +
 jena-extras/jena-querybuilder/LICENSE           |  202 ++
 jena-extras/jena-querybuilder/README.md         |   49 +
 .../jena-querybuilder/license-header.txt        |   14 +
 jena-extras/jena-querybuilder/pom.xml           |   56 +
 .../arq/querybuilder/AbstractQueryBuilder.java  |  362 ++++
 .../jena/arq/querybuilder/AskBuilder.java       |  198 ++
 .../jena/arq/querybuilder/ConstructBuilder.java |  244 +++
 .../jena/arq/querybuilder/SelectBuilder.java    |  281 +++
 .../querybuilder/clauses/ConstructClause.java   |   74 +
 .../arq/querybuilder/clauses/DatasetClause.java |   75 +
 .../arq/querybuilder/clauses/PrologClause.java  |  105 +
 .../arq/querybuilder/clauses/SelectClause.java  |   79 +
 .../clauses/SolutionModifierClause.java         |   89 +
 .../arq/querybuilder/clauses/WhereClause.java   |  153 ++
 .../arq/querybuilder/clauses/package-info.java  |    7 +
 .../querybuilder/handlers/ConstructHandler.java |   89 +
 .../querybuilder/handlers/DatasetHandler.java   |  149 ++
 .../jena/arq/querybuilder/handlers/Handler.java |   42 +
 .../querybuilder/handlers/PrologHandler.java    |  126 ++
 .../querybuilder/handlers/SelectHandler.java    |  133 ++
 .../handlers/SolutionModifierHandler.java       |  269 +++
 .../arq/querybuilder/handlers/WhereHandler.java |  310 +++
 .../arq/querybuilder/handlers/package-info.java |    9 +
 .../jena/arq/querybuilder/package-info.java     |    9 +
 .../rewriters/AbstractRewriter.java             |  222 +++
 .../querybuilder/rewriters/ElementRewriter.java |  213 ++
 .../querybuilder/rewriters/ExprRewriter.java    |  203 ++
 .../rewriters/NodeValueRewriter.java            |   96 +
 .../arq/querybuilder/rewriters/OpRewriter.java  |  368 ++++
 .../querybuilder/rewriters/PathRewriter.java    |  163 ++
 .../querybuilder/rewriters/package-info.java    |    7 +
 .../jena/arq/AbstractRegexpBasedTest.java       |   99 +
 .../querybuilder/AbstractQueryBuilderTest.java  |  126 ++
 .../querybuilder/AskBuilderContractTest.java    |   53 +
 .../ConstructBuilderContractTest.java           |   53 +
 .../querybuilder/SelectBuilderContractTest.java |   53 +
 .../arq/querybuilder/SelectBuilderTest.java     |  132 ++
 .../clauses/AbstractClauseTest.java             |   58 +
 .../querybuilder/clauses/DatasetClauseTest.java |  150 ++
 .../querybuilder/clauses/PrologClauseTest.java  |  144 ++
 .../querybuilder/clauses/SelectClauseTest.java  |  170 ++
 .../clauses/SolutionModifierTest.java           |  175 ++
 .../querybuilder/clauses/WhereClauseTest.java   |  285 +++
 .../handlers/AbstractHandlerTest.java           |   44 +
 .../handlers/ConstructHandlerTest.java          |   96 +
 .../handlers/DatasetHandlerTest.java            |  126 ++
 .../handlers/PrologHandlerTest.java             |  109 +
 .../handlers/SelectHandlerTest.java             |  152 ++
 .../handlers/SolutionModifierHandlerTest.java   |  201 ++
 .../querybuilder/handlers/WhereHandlerTest.java |  296 +++
 jena-extras/pom.xml                             |  135 ++
 jena-fuseki/Data/books.ttl                      |   16 +
 jena-fuseki/Data/test_abox.ttl                  |   16 +
 jena-fuseki/Data/test_data_rdfs.ttl             |   16 +
 jena-fuseki/Data/test_tbox.ttl                  |   16 +
 jena-fuseki/SEE_FUSEKI2                         |    0
 jena-fuseki/assembly-dist.xml                   |    4 +-
 jena-fuseki/config-tdb-text.ttl                 |   16 +
 jena-fuseki/dist/LICENSE                        |  548 +++++
 jena-fuseki/dist/LICENSE-dist                   |  548 -----
 jena-fuseki/dist/NOTICE                         |  216 ++
 jena-fuseki/dist/NOTICE-dist                    |  216 --
 jena-fuseki/fuseki-server.bat                   |   16 +
 jena-fuseki/jetty-fuseki.xml                    |   17 +
 jena-fuseki/make_cp_mvn                         |   16 +
 jena-fuseki/make_links                          |    3 +-
 jena-fuseki/pom.xml                             |   24 +-
 jena-fuseki/run_cp                              |   17 +-
 jena-fuseki/s-delete                            |  714 ++++++-
 jena-fuseki/s-get                               |  714 ++++++-
 jena-fuseki/s-head                              |  714 ++++++-
 jena-fuseki/s-post                              |  714 ++++++-
 jena-fuseki/s-put                               |  714 ++++++-
 jena-fuseki/s-query                             |  714 ++++++-
 jena-fuseki/s-update                            |  714 ++++++-
 jena-fuseki/s-update-form                       |  714 ++++++-
 .../dev/BackwardForwardDescribeFactory.java     |   95 -
 jena-fuseki/src-dev/dev/DevFuseki.java          |  149 --
 jena-fuseki/src-dev/dev/RunFuseki.java          |    2 +-
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |   13 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |    2 +-
 .../java/org/apache/jena/fuseki/HttpNames.java  |    3 +-
 .../jena/fuseki/mgt/ManagementServer.java       |    1 +
 .../org/apache/jena/fuseki/mgt/PingServlet.java |   75 +
 .../apache/jena/fuseki/servlets/HttpAction.java |   52 +-
 .../jena/fuseki/servlets/SPARQL_Query.java      |   34 +-
 .../jena/fuseki/servlets/SPARQL_REST_R.java     |    5 +-
 .../jena/fuseki/servlets/SPARQL_REST_RW.java    |    6 +
 .../fuseki/servlets/SPARQL_ServletBase.java     |  165 +-
 .../jena/fuseki/servlets/SPARQL_Update.java     |    1 +
 .../jena/fuseki/servlets/SPARQL_Upload.java     |    1 +
 .../jena/fuseki/servlets/ServletBase.java       |   15 +
 jena-fuseki/tdb.ttl                             |   16 +
 jena-fuseki2/.gitignore                         |    3 +
 jena-fuseki2/D.trig                             |   18 +-
 jena-fuseki2/D.ttl                              |   18 +-
 jena-fuseki2/Data/books.ttl                     |   16 +
 jena-fuseki2/Data/test_abox.ttl                 |   16 +
 jena-fuseki2/Data/test_data_rdfs.ttl            |   16 +
 jena-fuseki2/Data/test_tbox.ttl                 |   16 +
 jena-fuseki2/assembly-dist.xml                  |    4 +-
 jena-fuseki2/backup                             |   15 +
 jena-fuseki2/dist/LICENSE                       |  608 ++++++
 jena-fuseki2/dist/LICENSE-dist                  |  600 ------
 jena-fuseki2/dist/NOTICE                        |  216 ++
 jena-fuseki2/dist/NOTICE-dist                   |  216 --
 jena-fuseki2/docs/fuseki-configuration.md       |  155 --
 jena-fuseki2/docs/fuseki-data-services.md       |   60 -
 jena-fuseki2/docs/fuseki-java.md                |    7 -
 jena-fuseki2/docs/fuseki-layout.md              |   72 -
 jena-fuseki2/docs/fuseki-logging.md             |   40 -
 jena-fuseki2/docs/fuseki-main.md                |  108 -
 jena-fuseki2/docs/fuseki-quick-start.md         |   28 -
 jena-fuseki2/docs/fuseki-run.md                 |   51 -
 jena-fuseki2/docs/fuseki-security.md            |   12 -
 jena-fuseki2/docs/fuseki-server-protocol.md     |  204 --
 jena-fuseki2/docs/fuseki-stats.md               |  113 --
 jena-fuseki2/docs/rdf-sparql-standards.md       |   23 -
 jena-fuseki2/docs/soh.md                        |   95 -
 jena-fuseki2/dwim                               |   16 +-
 jena-fuseki2/dwim-upload                        |   16 +
 jena-fuseki2/examples/jetty-fuseki.xml          |   17 +
 jena-fuseki2/fuseki-server.bat                  |   16 +
 jena-fuseki2/make-html                          |   15 +
 jena-fuseki2/make_cp_mvn                        |   16 +
 jena-fuseki2/pom.xml                            |   27 +-
 jena-fuseki2/run-fuseki                         |    3 +-
 .../dev/BackwardForwardDescribeFactory.java     |   95 -
 jena-fuseki2/src-dev/dev/PROJECT.java           |   80 -
 jena-fuseki2/src-dev/dev/RunAsWebapp.java       |   50 -
 jena-fuseki2/src-dev/dev/RunFuseki2.java        |   96 -
 .../java/org/apache/jena/fuseki/Fuseki.java     |   25 +-
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |   13 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |    2 +-
 .../org/apache/jena/fuseki/FusekiLogging.java   |   44 +-
 .../apache/jena/fuseki/jetty/JettyFuseki.java   |    6 +-
 .../org/apache/jena/fuseki/mgt/ActionPing.java  |    9 +-
 .../org/apache/jena/fuseki/mgt/ActionStats.java |    1 +
 .../apache/jena/fuseki/server/CounterName.java  |    3 +-
 .../apache/jena/fuseki/server/SystemState.java  |    2 +-
 .../apache/jena/fuseki/servlets/ActionBase.java |   55 +-
 .../apache/jena/fuseki/servlets/ActionLib.java  |   18 +-
 .../jena/fuseki/servlets/ActionSPARQL.java      |   36 +-
 .../apache/jena/fuseki/servlets/HttpAction.java |   68 +-
 .../jena/fuseki/servlets/ResponseResultSet.java |    3 +-
 .../jena/fuseki/servlets/SPARQL_GSP_R.java      |    4 +-
 .../jena/fuseki/servlets/SPARQL_GSP_RW.java     |   14 +-
 .../jena/fuseki/servlets/SPARQL_Query.java      |   70 +-
 .../jena/fuseki/servlets/SPARQL_Update.java     |   98 +-
 .../jena/fuseki/servlets/SPARQL_Upload.java     |    2 +
 .../jena/fuseki/servlets/ServletBase.java       |   15 +-
 .../org/apache/jena/fuseki/servlets/Upload.java |    1 -
 .../src/main/resources/log4j.properties         |   23 +-
 .../org/apache/jena/fuseki/server/config.ttl    |    4 +-
 .../org/apache/jena/fuseki/server/shiro.ini     |    2 +
 jena-fuseki2/src/main/webapp/WEB-INF/web.xml    |   16 +
 jena-iri/pom.xml                                |   10 +-
 jena-jdbc/jena-jdbc-core/pom.xml                |    4 +-
 .../main/resources/jena-jdbc-log4j.properties   |   16 +
 jena-jdbc/jena-jdbc-driver-bundle/pom.xml       |   20 +-
 jena-jdbc/jena-jdbc-driver-mem/pom.xml          |    6 +-
 jena-jdbc/jena-jdbc-driver-remote/pom.xml       |   10 +-
 jena-jdbc/jena-jdbc-driver-tdb/pom.xml          |   10 +-
 jena-jdbc/pom.xml                               |    4 +-
 jena-maven-tools/pom.xml                        |   11 +-
 jena-parent/pom.xml                             |  102 +-
 jena-sdb/Data/data.ttl                          |   16 +
 jena-sdb/Data/data2.ttl                         |   16 +
 jena-sdb/Old/PG_GRANT                           |   10 -
 jena-sdb/Old/ToDo-AFS                           |   67 -
 jena-sdb/Store/sdb-sap-layout1.ttl              |   16 +
 jena-sdb/Store/sdb-sap.ttl                      |   16 +
 jena-sdb/assembly.xml                           |    4 +-
 jena-sdb/dist/LICENSE                           |  246 +++
 jena-sdb/dist/LICENSE-dist                      |  246 ---
 jena-sdb/dist/NOTICE                            |   42 +
 jena-sdb/dist/NOTICE-dist                       |   42 -
 jena-sdb/dist/dist.sh                           |   15 +
 jena-sdb/log4j.properties                       |   16 +
 jena-sdb/pom.xml                                |   18 +-
 jena-sdb/src-dev/resources/etc/daml-micro.rules |   16 +
 .../src-dev/resources/etc/dig-daml-axioms.rdf   |   17 +-
 .../src-dev/resources/etc/dig-owl-axioms.rdf    |   16 +
 .../src-dev/resources/etc/location-mapping.ex   |   16 +
 .../src-dev/resources/etc/ont-policy-test.rdf   |   17 +
 jena-sdb/src-dev/resources/etc/ont-policy.rdf   |   17 +
 jena-sdb/src-dev/resources/etc/owl-b.rules      |   16 +
 .../src-dev/resources/etc/owl-fb-micro.rules    |   16 +
 .../src-dev/resources/etc/owl-fb-mini.rules     |   16 +
 jena-sdb/src-dev/resources/etc/owl-fb-old.rules |   16 +
 jena-sdb/src-dev/resources/etc/owl-fb.rules     |   16 +
 jena-sdb/src-dev/resources/etc/owl.rules        |   16 +
 .../src-dev/resources/etc/rdfs-b-tuned.rules    |   16 +
 jena-sdb/src-dev/resources/etc/rdfs-b.rules     |   16 +
 .../src-dev/resources/etc/rdfs-fb-lp-expt.rules |   16 +
 .../resources/etc/rdfs-fb-tgc-noresource.rules  |   16 +
 .../resources/etc/rdfs-fb-tgc-simple.rules      |   16 +
 .../src-dev/resources/etc/rdfs-fb-tgc.rules     |   16 +
 jena-sdb/src-dev/resources/etc/rdfs-fb.rules    |   16 +
 .../src-dev/resources/etc/rdfs-noresource.rules |   16 +
 jena-sdb/src-dev/resources/etc/rdfs.rules       |   16 +
 .../src-dev/resources/etc/schemagen_example.rdf |   17 +
 jena-security/pom.xml                           |   16 +-
 .../apache/jena/security/example/example.ttl    |   16 +
 .../graph/SecuredPrefixMappingTest.java         |    3 +-
 .../jena/security/graph/TDBGraphTest.java       |    4 +-
 jena-spatial/pom.xml                            |    8 +-
 .../jena/query/spatial/SpatialIndexContext.java |    5 +-
 .../jena/query/spatial/SpatialIndexLucene.java  |    8 +-
 .../jena/query/spatial/SpatialIndexSolr.java    |   49 +-
 .../jena/query/spatial/SpatialQueryFuncs.java   |   59 +
 jena-tdb/log4j.properties                       |   16 +
 jena-tdb/pom.xml                                |   18 +-
 .../com/hp/hpl/jena/tdb/StoreConnection.java    |   20 +-
 .../java/com/hp/hpl/jena/tdb/TDBFactory.java    |    6 +-
 .../jena/tdb/assembler/DatasetAssemblerTDB.java |    2 +-
 .../jena/tdb/assembler/NodeTableAssembler.java  |    4 +-
 .../jena/tdb/assembler/TDBGraphAssembler.java   |    2 +-
 .../hp/hpl/jena/tdb/base/block/BlockParams.java |    6 +-
 .../tdb/base/file/BufferAllocatorDirect.java    |   18 +
 .../jena/tdb/base/file/BufferAllocatorMem.java  |   18 +
 .../com/hp/hpl/jena/tdb/base/file/FileSet.java  |    4 +-
 .../com/hp/hpl/jena/tdb/base/file/Location.java |   10 +-
 .../com/hp/hpl/jena/tdb/index/IndexParams.java  |   39 +-
 .../java/com/hp/hpl/jena/tdb/setup/Build.java   |   72 +-
 .../hpl/jena/tdb/setup/DatasetBuilderBasic.java |   14 +-
 .../hpl/jena/tdb/setup/DatasetBuilderStd.java   |  110 +-
 .../com/hp/hpl/jena/tdb/setup/StoreParams.java  |  434 +++-
 .../hpl/jena/tdb/setup/StoreParamsBuilder.java  |  278 +--
 .../hp/hpl/jena/tdb/setup/StoreParamsCodec.java |  215 ++
 .../hp/hpl/jena/tdb/setup/StoreParamsConst.java |  118 ++
 .../hpl/jena/tdb/setup/StoreParamsDynamic.java  |   54 +
 .../com/hp/hpl/jena/tdb/solver/SolverLib.java   |   65 +-
 .../tdb/store/bulkloader2/CmdIndexBuild.java    |    2 +-
 .../tdb/store/bulkloader2/CmdIndexCopy.java     |    4 +-
 .../store/bulkloader2/CmdNodeTableBuilder.java  |    4 +-
 .../hpl/jena/tdb/store/nodetable/NodeTable.java |    4 +
 .../tdb/store/nodetable/NodeTableCache.java     |    3 +-
 .../tdb/store/nodetable/NodeTableLogger.java    |    5 +
 .../tdb/store/nodetable/NodeTableNative.java    |    5 +
 .../tdb/store/nodetable/NodeTableWrapper.java   |    1 +
 .../java/com/hp/hpl/jena/tdb/sys/DebugTDB.java  |    2 +-
 .../java/com/hp/hpl/jena/tdb/sys/SystemTDB.java |    2 +-
 .../java/com/hp/hpl/jena/tdb/sys/TDBMaker.java  |   32 +-
 .../jena/tdb/transaction/NodeTableTrans.java    |    6 +
 .../hpl/jena/tdb/transaction/Transaction.java   |  186 +-
 jena-tdb/src/main/java/tdb/CmdRewriteIndex.java |    4 +-
 .../src/main/java/tdb/cmdline/ModLocation.java  |    2 +-
 .../main/java/tdb/cmdline/ModTDBDataset.java    |    2 +-
 .../src/main/java/tdb/tools/dumpnodetable.java  |    2 +-
 .../src/main/java/tdb/tools/tdbgenindex.java    |    4 +-
 .../test/java/com/hp/hpl/jena/tdb/TC_TDB.java   |    8 +-
 .../jena/tdb/base/file/TestLocationLock.java    |   30 +-
 .../tdb/base/objectfile/TestStringFileDisk.java |    2 +-
 .../hpl/jena/tdb/extra/T_QuadsObjectIsNull.java |    2 +-
 .../jena/tdb/extra/T_TDBWriteTransaction.java   |    2 +-
 .../hp/hpl/jena/tdb/extra/T_TransSystem.java    |    6 +-
 .../tdb/extra/T_TransSystemMultiDatasets.java   |    4 +-
 .../jena/tdb/graph/AbstractTestGraphsTDB.java   |    6 +-
 .../jena/tdb/graph/TestPrefixMappingTDB.java    |    6 +-
 .../java/com/hp/hpl/jena/tdb/junit/Base_TS.java |    8 +-
 .../com/hp/hpl/jena/tdb/setup/TS_TDBSetup.java  |   33 +
 .../hp/hpl/jena/tdb/setup/TestStoreParams.java  |  143 ++
 .../jena/tdb/setup/TestStoreParamsChoose.java   |  158 ++
 .../jena/tdb/setup/TestStoreParamsCreate.java   |  171 ++
 .../jena/tdb/store/TestDatasetTDBPersist.java   |    2 +-
 .../com/hp/hpl/jena/tdb/store/TestGraphTDB.java |    2 +-
 .../com/hp/hpl/jena/tdb/store/TestLoader.java   |    2 +-
 .../tdb/transaction/TestNodeTableTransDisk.java |    2 +-
 .../transaction/TestObjectFileTransStorage.java |    4 +-
 .../jena/tdb/transaction/TestTransRestart.java  |    4 +-
 .../tdb/transaction/TestTransactionTDB.java     |    2 +-
 jena-text/.gitignore                            |    0
 jena-text/data.ttl                              |    4 -
 jena-text/pom.xml                               |   16 +-
 .../apache/jena/query/text/TextQueryFuncs.java  |    2 +-
 .../assembler/AbstractTestTextAssembler.java    |    2 +-
 jena-text/text-config.ttl                       |   18 +-
 pom.xml                                         |   22 +-
 516 files changed, 30085 insertions(+), 10019 deletions(-)
----------------------------------------------------------------------



[22/26] jena git commit: Bring up to date with Jena 3 changes (JENA-780)

Posted by rv...@apache.org.
Bring up to date with Jena 3 changes (JENA-780)


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/263d8426
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/263d8426
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/263d8426

Branch: refs/heads/master
Commit: 263d8426274a99430d5057cdf83a34701bcc149d
Parents: 9d68417
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 17:17:46 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 17:17:46 2015 +0100

----------------------------------------------------------------------
 .../optimize/TransformEliminateAssignments.java | 536 -------------------
 .../optimize/TransformRemoveAssignment.java     | 116 ----
 .../algebra/optimize/VariableUsagePopper.java   |  57 --
 .../algebra/optimize/VariableUsagePusher.java   |  59 --
 .../algebra/optimize/VariableUsageTracker.java  |  92 ----
 .../algebra/optimize/VariableUsageVisitor.java  | 204 -------
 .../optimize/TransformEliminateAssignments.java | 536 +++++++++++++++++++
 .../optimize/TransformRemoveAssignment.java     | 116 ++++
 .../algebra/optimize/VariableUsagePopper.java   |  57 ++
 .../algebra/optimize/VariableUsagePusher.java   |  59 ++
 .../algebra/optimize/VariableUsageTracker.java  |  92 ++++
 .../algebra/optimize/VariableUsageVisitor.java  | 204 +++++++
 .../TestTransformEliminateAssignments.java      | 431 ---------------
 .../TestTransformEliminateAssignments.java      | 432 +++++++++++++++
 14 files changed, 1496 insertions(+), 1495 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
deleted file mode 100644
index c468272..0000000
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ /dev/null
@@ -1,536 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hp.hpl.jena.sparql.algebra.optimize;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.jena.atlas.lib.CollectionUtils;
-
-import com.hp.hpl.jena.query.SortCondition;
-import com.hp.hpl.jena.sparql.algebra.Op;
-import com.hp.hpl.jena.sparql.algebra.OpVisitor;
-import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
-import com.hp.hpl.jena.sparql.algebra.Transform;
-import com.hp.hpl.jena.sparql.algebra.TransformCopy;
-import com.hp.hpl.jena.sparql.algebra.Transformer;
-import com.hp.hpl.jena.sparql.algebra.op.OpExt;
-import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
-import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
-import com.hp.hpl.jena.sparql.algebra.op.OpGroup;
-import com.hp.hpl.jena.sparql.algebra.op.OpOrder;
-import com.hp.hpl.jena.sparql.algebra.op.OpProject;
-import com.hp.hpl.jena.sparql.algebra.op.OpTopN;
-import com.hp.hpl.jena.sparql.core.Var;
-import com.hp.hpl.jena.sparql.core.VarExprList;
-import com.hp.hpl.jena.sparql.expr.Expr;
-import com.hp.hpl.jena.sparql.expr.ExprAggregator;
-import com.hp.hpl.jena.sparql.expr.ExprLib;
-import com.hp.hpl.jena.sparql.expr.ExprList;
-import com.hp.hpl.jena.sparql.expr.ExprTransform;
-import com.hp.hpl.jena.sparql.expr.ExprTransformSubstitute;
-import com.hp.hpl.jena.sparql.expr.ExprTransformer;
-import com.hp.hpl.jena.sparql.expr.ExprVars;
-import com.hp.hpl.jena.sparql.expr.NodeValue;
-
-/**
- * A transform that tries to in-line/eliminate assignments
- * <p>
- * There are two classes of assignments that we can try and in-line/eliminate:
- * </p>
- * <ol>
- * <li>Assignments where the assigned variable is used only once in a subsequent
- * assignment can be in-lined</li>
- * <li>Assignments where the assigned value is never used elsewhere can be
- * eliminated</li>
- * </ol>
- * <p>
- * Both of these changes can only happen inside of projections as otherwise we
- * have to assume that the user may need the resulting variable and thus we
- * leave the assignment alone. Assignments to be in-lined must also be
- * deterministic i.e. moving their placement in the query and thus the possible
- * solutions they might operate must not change their outputs. Whether an
- * expression is deterministic is defined by {@link ExprLib#isStable(Expr)}.
- * </p>
- * <p>
- * Assignments may be in-lined in the following places:
- * </p>
- * <ul>
- * <li>Filter Expressions</li>
- * <li>Bind and Select Expressions</li>
- * <li>Order By Expressions if aggressive in-lining is enabled or the assigned
- * expression is a constant</li>
- * </ul>
- * <p>
- * In the case of order by we only in-line assignments when aggressive mode is
- * set as the realities of order by are that expressions may be recomputed
- * multiple times and so in-lining may actually hurt performance in those cases
- * unless the expression to be in-lined is itself a constant.
- * </p>
- */
-public class TransformEliminateAssignments extends TransformCopy {
-
-    public static Op eliminate(Op op) {
-        return eliminate(op, false);
-    }
-
-    public static Op eliminate(Op op, boolean aggressive) {
-        AssignmentTracker tracker = new AssignmentTracker();
-        AssignmentPusher pusher = new AssignmentPusher(tracker);
-        AssignmentPopper popper = new AssignmentPopper(tracker);
-        Transform transform = new TransformEliminateAssignments(tracker, pusher, popper, aggressive);
-
-        return Transformer.transformSkipService(transform, op, pusher, popper);
-    }
-
-    private final OpVisitor before, after;
-    private final AssignmentTracker tracker;
-    private final boolean aggressive;
-
-    private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after) {
-        this(tracker, before, after, false);
-    }
-
-    private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after,
-            boolean aggressive) {
-        this.tracker = tracker;
-        this.before = before;
-        this.after = after;
-        this.aggressive = aggressive;
-    }
-
-    protected boolean canInline(Expr e) {
-        if (e == null)
-            return false;
-        return ExprLib.isStable(e);
-    }
-
-    protected boolean shouldInline(Expr e) {
-        if (e == null)
-            return false;
-
-        // Inline everything when being aggressive
-        if (this.aggressive)
-            return true;
-
-        // If not being aggressive only inline if the expression is a constant
-        return e.isConstant() || e instanceof NodeValue;
-    }
-
-    protected boolean isApplicable() {
-        // Can only be applied if we are inside a projection as otherwise the
-        // assigned variables need to remain visible
-        if (!this.tracker.insideProjection())
-            return false;
-        // If there are no eligible assignments then don't bother doing any work
-        if (this.tracker.assignments.size() == 0)
-            return false;
-
-        // Otherwise may be applicable
-        return true;
-    }
-
-    @Override
-    public Op transform(OpExt opExt) {
-        return opExt.apply(this, this.before, this.after);
-    }
-
-    @Override
-    public Op transform(OpFilter opFilter, Op subOp) {
-        if (!this.isApplicable())
-            return super.transform(opFilter, subOp);
-
-        // See what vars are used in the filter
-        Collection<Var> vars = new ArrayList<>();
-        for (Expr expr : opFilter.getExprs().getList()) {
-            ExprVars.varsMentioned(vars, expr);
-        }
-
-        // Are any of these vars single usage?
-        ExprList exprs = opFilter.getExprs();
-        boolean modified = false;
-        for (Var var : vars) {
-            // Usage count will be 2 if we can eliminate the assignment
-            // First usage is when it is introduced by the assignment and the
-            // second is when it is used now in this filter
-            Expr e = getAssignExpr(var);
-            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
-                // Can go back and eliminate that assignment
-                subOp = eliminateAssignment(subOp, var);
-                // Replace the variable usage with the expression
-                exprs = ExprTransformer.transform(new ExprTransformSubstitute(var, e), exprs);
-                this.tracker.getAssignments().remove(var);
-                modified = true;
-            }
-        }
-
-        // Create a new filter if we've substituted any expressions
-        if (modified) {
-            return OpFilter.filter(exprs, subOp);
-        }
-
-        return super.transform(opFilter, subOp);
-    }
-
-    private boolean hasAssignment(Var var) {
-        return this.tracker.getAssignments().containsKey(var);
-    }
-
-    private Expr getAssignExpr(Var var) {
-        return this.tracker.getAssignments().get(var);
-    }
-
-    @Override
-    public Op transform(OpExtend opExtend, Op subOp) {
-        // No point tracking assignments if not in a projection as we can't
-        // possibly eliminate them without a projection to hide the fact that
-        // the assigned value is unnecessary or only used once
-        if (!this.tracker.insideProjection())
-            return super.transform(opExtend, subOp);
-
-        // Track the assignments for future reference
-        this.tracker.putAssignments(opExtend.getVarExprList());
-
-        // Eliminate and inline assignments
-        VarExprList unusedAssignments = processUnused(opExtend.getVarExprList());
-        VarExprList newAssignments = new VarExprList();
-        for (Var assignVar : opExtend.getVarExprList().getVars()) {
-            // If unused eliminate
-            if (unusedAssignments != null && unusedAssignments.contains(assignVar))
-                continue;
-
-            Expr currExpr = opExtend.getVarExprList().getExpr(assignVar);
-
-            // See what vars are used in the current expression
-            Collection<Var> vars = new ArrayList<>();
-            ExprVars.varsMentioned(vars, currExpr);
-
-            // See if we can inline anything
-            for (Var var : vars) {
-                // Usage count will be 2 if we can eliminate the assignment
-                // First usage is when it is introduced by the assignment and
-                // the second is when it is used now used in another assignment
-                Expr e = getAssignExpr(var);
-                if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
-                    // Can go back and eliminate that assignment
-                    subOp = eliminateAssignment(subOp, var);
-                    // Replace the variable usage with the expression within
-                    // expression
-                    currExpr = ExprTransformer.transform(new ExprTransformSubstitute(var, e), currExpr);
-                    this.tracker.getAssignments().remove(var);
-
-                    // Need to update any assignments we may be tracking that
-                    // refer to the variable we just inlined
-                    this.tracker.updateAssignments(var, e);
-
-                    // If the assignment to be eliminated was introduced by the
-                    // extend we are processing need to remove it from the
-                    // VarExprList we are currently building
-                    if (newAssignments.contains(var) && newAssignments.getExpr(var).equals(e)) {
-                        newAssignments.getVars().remove(var);
-                        newAssignments.getExprs().remove(var);
-                    }
-                }
-            }
-            newAssignments.add(assignVar, currExpr);
-        }
-
-        // May be able to eliminate the extend entirely in some cases
-        if (newAssignments.size() > 0) {
-            return OpExtend.extend(subOp, newAssignments);
-        } else {
-            return subOp;
-        }
-    }
-
-    private VarExprList processUnused(VarExprList assignments) {
-        if (CollectionUtils.disjoint(assignments.getVars(), this.tracker.getAssignments().keySet()))
-            return null;
-
-        VarExprList singleUse = new VarExprList();
-        for (Var var : assignments.getVars()) {
-            if (this.tracker.getUsageCount(var) == 1)
-                singleUse.add(var, assignments.getExpr(var));
-        }
-
-        // If nothing is single use
-        if (singleUse.size() == 0)
-            return null;
-
-        return singleUse;
-    }
-
-    @Override
-    public Op transform(OpOrder opOrder, Op subOp) {
-        if (!this.isApplicable())
-            return super.transform(opOrder, subOp);
-
-        // See what vars are used in the sort conditions
-        Collection<Var> vars = new ArrayList<>();
-        for (SortCondition cond : opOrder.getConditions()) {
-            ExprVars.varsMentioned(vars, cond.getExpression());
-        }
-
-        // Are any of these vars single usage?
-        List<SortCondition> conditions = null;
-        for (Var var : vars) {
-            // Usage count will be 2 if we can eliminate the assignment
-            // First usage is when it is introduced by the assignment and the
-            // second is when it is used now in this order expression
-            Expr e = getAssignExpr(var);
-            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
-                // Can go back and eliminate that assignment
-                subOp = eliminateAssignment(subOp, var);
-                // Replace the variable usage with the expression within the
-                // sort conditions
-                conditions = processConditions(opOrder.getConditions(), conditions, var);
-                this.tracker.getAssignments().remove(var);
-            }
-        }
-
-        // Create a new order if we've substituted any expressions
-        if (conditions != null) {
-            return new OpOrder(subOp, conditions);
-        }
-
-        return super.transform(opOrder, subOp);
-    }
-
-    private List<SortCondition> processConditions(List<SortCondition> baseConditions,
-            List<SortCondition> processedConditions, Var var) {
-        List<SortCondition> inputConditions = processedConditions != null ? processedConditions : baseConditions;
-        List<SortCondition> outputConditions = new ArrayList<>();
-
-        for (SortCondition cond : inputConditions) {
-            Expr e = cond.getExpression();
-            e = ExprTransformer.transform(new ExprTransformSubstitute(var, getAssignExpr(var)), e);
-            outputConditions.add(new SortCondition(e, cond.getDirection()));
-        }
-
-        return outputConditions;
-    }
-
-    @Override
-    public Op transform(OpTopN opTop, Op subOp) {
-        if (!this.isApplicable())
-            return super.transform(opTop, subOp);
-
-        // See what vars are used in the sort conditions
-        Collection<Var> vars = new ArrayList<>();
-        for (SortCondition cond : opTop.getConditions()) {
-            ExprVars.varsMentioned(vars, cond.getExpression());
-        }
-
-        // Are any of these vars single usage?
-        List<SortCondition> conditions = null;
-        for (Var var : vars) {
-            // Usage count will be 2 if we can eliminate the assignment
-            // First usage is when it is introduced by the assignment and the
-            // second is when it is used now in this filter
-            Expr e = getAssignExpr(var);
-            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
-                // Can go back and eliminate that assignment
-                subOp = eliminateAssignment(subOp, var);
-                // Replace the variable usage with the expression within the
-                // sort conditions
-                conditions = processConditions(opTop.getConditions(), conditions, var);
-                this.tracker.getAssignments().remove(var);
-            }
-        }
-
-        // Create a new order if we've substituted any expressions
-        if (conditions != null) {
-            return new OpTopN(subOp, opTop.getLimit(), conditions);
-        }
-
-        return super.transform(opTop, subOp);
-    }
-
-    @Override
-    public Op transform(OpGroup opGroup, Op subOp) {
-        return super.transform(opGroup, subOp);
-
-        // TODO Unclear if this will work properly or not because group can
-        // introduce new assignments as well as evaluate expressions
-
-        //@formatter:off
-//        if (!this.isApplicable())
-//            return super.transform(opGroup, subOp);
-//
-//        // See what vars are used in the filter
-//        Collection<Var> vars = new ArrayList<>();
-//        VarExprList exprs = new VarExprList(opGroup.getGroupVars());
-//        List<ExprAggregator> aggs = new ArrayList<ExprAggregator>(opGroup.getAggregators());
-//        for (Expr expr : exprs.getExprs().values()) {
-//            ExprVars.varsMentioned(vars, expr);
-//        }
-//
-//        // Are any of these vars single usage?
-//        boolean modified = false;
-//        for (Var var : vars) {
-//            // Usage count will be 2 if we can eliminate the assignment
-//            // First usage is when it is introduced by the assignment and the
-//            // second is when it is used now in this group by
-//            Expr e = getAssignExpr(var);
-//            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
-//                // Can go back and eliminate that assignment
-//                subOp = eliminateAssignment(subOp, var);
-//                // Replace the variable usage with the expression in both the
-//                // expressions and the aggregators
-//                ExprTransform transform = new ExprTransformSubstitute(var, e);
-//                exprs = processVarExprList(exprs, transform);
-//                aggs = processAggregators(aggs, transform);
-//                this.tracker.getAssignments().remove(var);
-//                modified = true;
-//            }
-//        }
-//
-//        // Create a new group by if we've substituted any expressions
-//        if (modified) {
-//            return new OpGroup(subOp, exprs, aggs);
-//        }
-//
-//        return super.transform(opGroup, subOp);
-        //@formatter:on
-    }
-
-    private Op eliminateAssignment(Op subOp, Var var) {
-        return Transformer.transform(new TransformRemoveAssignment(var, getAssignExpr(var)), subOp);
-    }
-
-    @SuppressWarnings("unused")
-    private VarExprList processVarExprList(VarExprList exprs, ExprTransform transform) {
-        VarExprList newExprs = new VarExprList();
-        for (Var v : exprs.getVars()) {
-            Expr e = exprs.getExpr(v);
-            Expr e2 = ExprTransformer.transform(transform, e);
-            newExprs.add(v, e2);
-        }
-        return newExprs;
-    }
-
-    @SuppressWarnings("unused")
-    private List<ExprAggregator> processAggregators(List<ExprAggregator> aggs, ExprTransform transform) {
-        List<ExprAggregator> newAggs = new ArrayList<ExprAggregator>();
-        for (ExprAggregator agg : aggs) {
-            ExprAggregator e2 = (ExprAggregator) ExprTransformer.transform(transform, agg);
-            newAggs.add(e2);
-        }
-        return newAggs;
-    }
-
-    private static class AssignmentTracker extends VariableUsageTracker {
-
-        private Map<Var, Expr> assignments = new HashMap<>();
-        private int depth = 0;
-
-        public Map<Var, Expr> getAssignments() {
-            return this.assignments;
-        }
-
-        public void putAssignments(VarExprList assignments) {
-            for (Var var : assignments.getVars()) {
-                int i = getUsageCount(var);
-                if (i <= 2) {
-                    this.assignments.put(var, assignments.getExpr(var));
-                } else {
-                    this.assignments.remove(var);
-                }
-            }
-        }
-
-        @Override
-        public void increment(String var) {
-            super.increment(var);
-
-            int i = getUsageCount(var);
-            if (i > 2) {
-                this.assignments.remove(var);
-            }
-        }
-
-        public void updateAssignments(Var v, Expr e) {
-            ExprTransformSubstitute transform = new ExprTransformSubstitute(v, e);
-            for (Var assignVar : this.assignments.keySet()) {
-                Expr assignExpr = this.assignments.get(assignVar);
-                assignExpr = ExprTransformer.transform(transform, assignExpr);
-                this.assignments.put(assignVar, assignExpr);
-            }
-        }
-
-        public void incrementDepth() {
-            this.depth++;
-        }
-
-        public void decrementDepth() {
-            this.depth--;
-            // Clear all assignments if not inside a project
-            if (this.depth == 0)
-                this.assignments.clear();
-        }
-
-        public boolean insideProjection() {
-            return this.depth > 0;
-        }
-    }
-
-    private static class AssignmentPusher extends VariableUsagePusher {
-
-        private AssignmentTracker tracker;
-
-        public AssignmentPusher(AssignmentTracker tracker) {
-            super(tracker);
-            this.tracker = tracker;
-        }
-
-        @Override
-        public void visit(OpProject opProject) {
-            super.visit(opProject);
-            this.tracker.incrementDepth();
-        }
-    }
-
-    private static class AssignmentPopper extends OpVisitorBase {
-
-        private AssignmentTracker tracker;
-
-        public AssignmentPopper(AssignmentTracker tracker) {
-            this.tracker = tracker;
-        }
-
-        @Override
-        public void visit(OpProject opProject) {
-            // Any assignments that are not projected should be discarded at
-            // this point
-            Iterator<Var> vars = tracker.getAssignments().keySet().iterator();
-            while (vars.hasNext()) {
-                Var var = vars.next();
-                if (!opProject.getVars().contains(var))
-                    vars.remove();
-            }
-            tracker.pop();
-            this.tracker.decrementDepth();
-        }
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
deleted file mode 100644
index d7c08d4..0000000
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hp.hpl.jena.sparql.algebra.optimize;
-
-import com.hp.hpl.jena.sparql.algebra.Op;
-import com.hp.hpl.jena.sparql.algebra.TransformCopy;
-import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
-import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
-import com.hp.hpl.jena.sparql.algebra.op.OpExtendAssign;
-import com.hp.hpl.jena.sparql.core.Var;
-import com.hp.hpl.jena.sparql.core.VarExprList;
-import com.hp.hpl.jena.sparql.expr.Expr;
-
-/**
- * A transform capable of removing assignments from the algebra tree
- * 
- */
-public class TransformRemoveAssignment extends TransformCopy {
-
-    private Var var;
-    private Expr expr;
-    private boolean topmostOnly = true;
-
-    public TransformRemoveAssignment(Var var, Expr expr, boolean topmostOnly) {
-        this.var = var;
-        this.expr = expr;
-        this.topmostOnly = topmostOnly;
-    }
-
-    public TransformRemoveAssignment(Var var, Expr expr) {
-        this(var, expr, true);
-    }
-
-    @Override
-    public Op transform(OpAssign opAssign, Op subOp) {
-        VarExprList assignments = processAssignments(opAssign);
-        if (assignments == null)
-            return super.transform(opAssign, subOp);
-
-        // Rewrite appropriately
-        if (this.topmostOnly) {
-            // If topmost only ignore any transformations lower down the tree
-            // hence call getSubOp() rather than using the provided subOp
-            if (assignments.size() > 0) {
-                return OpAssign.assign(opAssign.getSubOp(), assignments);
-            } else {
-                return opAssign.getSubOp();
-            }
-        } else {
-            // Otherwise preserve any transformations from lower down the tree
-            if (assignments.size() > 0) {
-                return OpAssign.assign(subOp, assignments);
-            } else {
-                return subOp;
-            }
-        }
-    }
-
-    private VarExprList processAssignments(OpExtendAssign opAssign) {
-        VarExprList orig = opAssign.getVarExprList();
-        if (!orig.contains(this.var))
-            return null;
-        if (!orig.getExpr(this.var).equals(this.expr))
-            return null;
-
-        VarExprList modified = new VarExprList();
-        for (Var v : orig.getVars()) {
-            if (!v.equals(this.var)) {
-                modified.add(v, orig.getExpr(v));
-            }
-        }
-        return modified;
-    }
-
-    @Override
-    public Op transform(OpExtend opExtend, Op subOp) {
-        VarExprList assignments = processAssignments(opExtend);
-        if (assignments == null)
-            return super.transform(opExtend, subOp);
-
-        // Rewrite appropriately
-        if (this.topmostOnly) {
-            // If topmost only ignore any transformations lower down the tree
-            // hence call getSubOp() rather than using the provided subOp
-            if (assignments.size() > 0) {
-                return OpExtend.extend(opExtend.getSubOp(), assignments);
-            } else {
-                return opExtend.getSubOp();
-            }
-        } else {
-            // Otherwise preserve any transformations from lower down the tree
-            if (assignments.size() > 0) {
-                return OpExtend.extend(subOp, assignments);
-            } else {
-                return subOp;
-            }
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
deleted file mode 100644
index 73e7ec9..0000000
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePopper.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hp.hpl.jena.sparql.algebra.optimize;
-
-import java.util.Collection;
-
-import com.hp.hpl.jena.sparql.algebra.op.OpProject;
-import com.hp.hpl.jena.sparql.core.Var;
-
-/**
- * An after visitor for tracking variable usage
- * 
- */
-public class VariableUsagePopper extends VariableUsageVisitor {
-
-    public VariableUsagePopper(VariableUsageTracker tracker) {
-        super(tracker);
-    }
-
-    @Override
-    protected void action(Collection<Var> vars) {
-        this.tracker.decrement(vars);
-    }
-
-    @Override
-    protected void action(Var var) {
-        this.tracker.decrement(var);
-    }
-
-    @Override
-    protected void action(String var) {
-        this.tracker.decrement(var);
-    }
-
-    @Override
-    public void visit(OpProject opProject) {
-        super.visit(opProject);
-        this.tracker.pop();
-        super.visit(opProject);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
deleted file mode 100644
index 437a104..0000000
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsagePusher.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hp.hpl.jena.sparql.algebra.optimize;
-
-import java.util.Collection;
-
-import com.hp.hpl.jena.sparql.algebra.op.OpProject;
-import com.hp.hpl.jena.sparql.core.Var;
-
-/**
- * A before visitor for tracking variable usage
- * 
- */
-public class VariableUsagePusher extends VariableUsageVisitor {
-
-    public VariableUsagePusher(VariableUsageTracker tracker) {
-        super(tracker);
-    }
-
-    @Override
-    protected void action(Collection<Var> vars) {
-        this.tracker.increment(vars);
-    }
-
-    @Override
-    protected void action(Var var) {
-        this.tracker.increment(var);
-    }
-
-    @Override
-    protected void action(String var) {
-        this.tracker.increment(var);
-    }
-
-    @Override
-    public void visit(OpProject opProject) {
-        super.visit(opProject);
-        this.tracker.push();
-        super.visit(opProject);
-    }
-
-    
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
deleted file mode 100644
index 770738c..0000000
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageTracker.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hp.hpl.jena.sparql.algebra.optimize;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Stack;
-
-import com.hp.hpl.jena.sparql.core.Var;
-
-/**
- * Tracker for variable usage
- * 
- */
-public class VariableUsageTracker {
-
-    private Stack<Map<String, Integer>> stack = new Stack<>();
-    private Map<String, Integer> variables = new HashMap<>();
-
-    public void push() {
-        this.stack.push(this.variables);
-        this.variables = new HashMap<>();
-    }
-
-    public void pop() {
-        if (this.stack.size() == 0)
-            throw new IllegalStateException("Stack is empty");
-        this.variables = this.stack.pop();
-    }
-
-    public void increment(Collection<Var> vars) {
-        for (Var var : vars) {
-            increment(var);
-        }
-    }
-
-    public void increment(String var) {
-        if (!variables.containsKey(var)) {
-            variables.put(var, 1);
-        } else {
-            variables.put(var, variables.get(var) + 1);
-        }
-    }
-
-    public void increment(Var var) {
-        increment(var.getName());
-    }
-
-    public void decrement(Collection<Var> vars) {
-        for (Var var : vars) {
-            decrement(var);
-        }
-    }
-
-    public void decrement(String var) {
-        if (variables.containsKey(var)) {
-            variables.put(var, variables.get(var) - 1);
-            if (variables.get(var) <= 0)
-                variables.remove(var);
-        }
-    }
-
-    public void decrement(Var var) {
-        decrement(var.getName());
-    }
-
-    public int getUsageCount(String var) {
-        Integer i = variables.get(var);
-        return i != null ? i.intValue() : 0;
-    }
-
-    public int getUsageCount(Var var) {
-        return getUsageCount(var.getName());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
deleted file mode 100644
index 664c7b0..0000000
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/VariableUsageVisitor.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hp.hpl.jena.sparql.algebra.optimize;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.query.SortCondition;
-import com.hp.hpl.jena.sparql.algebra.OpVisitorBase;
-import com.hp.hpl.jena.sparql.algebra.op.OpAssign;
-import com.hp.hpl.jena.sparql.algebra.op.OpBGP;
-import com.hp.hpl.jena.sparql.algebra.op.OpDatasetNames;
-import com.hp.hpl.jena.sparql.algebra.op.OpExtend;
-import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
-import com.hp.hpl.jena.sparql.algebra.op.OpGraph;
-import com.hp.hpl.jena.sparql.algebra.op.OpGroup;
-import com.hp.hpl.jena.sparql.algebra.op.OpLeftJoin;
-import com.hp.hpl.jena.sparql.algebra.op.OpOrder;
-import com.hp.hpl.jena.sparql.algebra.op.OpPath;
-import com.hp.hpl.jena.sparql.algebra.op.OpProject;
-import com.hp.hpl.jena.sparql.algebra.op.OpPropFunc;
-import com.hp.hpl.jena.sparql.algebra.op.OpQuadBlock;
-import com.hp.hpl.jena.sparql.algebra.op.OpQuadPattern;
-import com.hp.hpl.jena.sparql.algebra.op.OpTable;
-import com.hp.hpl.jena.sparql.algebra.op.OpTopN;
-import com.hp.hpl.jena.sparql.core.Quad;
-import com.hp.hpl.jena.sparql.core.Var;
-import com.hp.hpl.jena.sparql.core.Vars;
-import com.hp.hpl.jena.sparql.expr.Expr;
-import com.hp.hpl.jena.sparql.expr.ExprVars;
-
-/**
- * A visitor which tracks variable usage
- * 
- */
-public abstract class VariableUsageVisitor extends OpVisitorBase {
-
-    protected VariableUsageTracker tracker;
-
-    public VariableUsageVisitor(VariableUsageTracker tracker) {
-        this.tracker = tracker;
-    }
-
-    protected abstract void action(Collection<Var> vars);
-
-    protected abstract void action(Var var);
-
-    protected abstract void action(String var);
-    
-    @Override
-    public void visit(OpBGP opBGP) {
-        Collection<Var> vars = new ArrayList<>();
-        for (Triple t : opBGP.getPattern().getList()) {
-            Vars.addVarsFromTriple(vars, t);
-        }
-        action(vars);
-    }
-
-    @Override
-    public void visit(OpQuadPattern quadPattern) {
-        Collection<Var> vars = new ArrayList<>();
-        for (Quad q : quadPattern.getPattern().getList()) {
-            Vars.addVarsFromQuad(vars, q);
-        }
-        action(vars);
-    }
-
-    @Override
-    public void visit(OpQuadBlock quadBlock) {
-        Collection<Var> vars = new ArrayList<>();
-        for (Quad q : quadBlock.getPattern().getList()) {
-            Vars.addVarsFromQuad(vars, q);
-        }
-        action(vars);
-    }
-
-    @Override
-    public void visit(OpPath opPath) {
-        if (opPath.getTriplePath().getSubject().isVariable())
-            action(opPath.getTriplePath().getSubject().getName());
-        if (opPath.getTriplePath().getObject().isVariable())
-            action(opPath.getTriplePath().getObject().getName());
-    }
-
-    @Override
-    public void visit(OpPropFunc opPropFunc) {
-        for (Node subjArg : opPropFunc.getSubjectArgs().getArgList()) {
-            if (subjArg.isVariable())
-                action(subjArg.getName());
-        }
-        for (Node objArg : opPropFunc.getObjectArgs().getArgList()) {
-            if (objArg.isVariable())
-                action(objArg.getName());
-        }
-    }
-
-    @Override
-    public void visit(OpLeftJoin opLeftJoin) {
-        Collection<Var> vars = new ArrayList<>();
-        for (Expr expr : opLeftJoin.getExprs().getList()) {
-            ExprVars.varsMentioned(vars, expr);
-        }
-        action(vars);
-    }
-
-    @Override
-    public void visit(OpFilter opFilter) {
-        Collection<Var> vars = new ArrayList<>();
-        for (Expr expr : opFilter.getExprs().getList()) {
-            ExprVars.varsMentioned(vars, expr);
-        }
-        action(vars);
-    }
-
-    @Override
-    public void visit(OpGraph opGraph) {
-        if (opGraph.getNode().isVariable())
-            action(opGraph.getNode().getName());
-    }
-
-    @Override
-    public void visit(OpDatasetNames dsNames) {
-        if (dsNames.getGraphNode().isVariable())
-            action(dsNames.getGraphNode().getName());
-    }
-
-    @Override
-    public void visit(OpTable opTable) {
-        action(opTable.getTable().getVars());
-    }
-
-    @Override
-    public void visit(OpAssign opAssign) {
-        Collection<Var> vars = new ArrayList<>();
-        for (Var var : opAssign.getVarExprList().getVars()) {
-            vars.add(var);
-            ExprVars.varsMentioned(vars, opAssign.getVarExprList().getExpr(var));
-        }
-        action(vars);
-    }
-
-    @Override
-    public void visit(OpExtend opExtend) {
-        Collection<Var> vars = new ArrayList<>();
-        for (Var var : opExtend.getVarExprList().getVars()) {
-            vars.add(var);
-            ExprVars.varsMentioned(vars, opExtend.getVarExprList().getExpr(var));
-        }
-        action(vars);
-    }
-
-    @Override
-    public void visit(OpOrder opOrder) {
-        Collection<Var> vars = new ArrayList<>();
-        for (SortCondition condition : opOrder.getConditions()) {
-            ExprVars.varsMentioned(vars, condition);
-        }
-        action(vars);
-    }
-
-    @Override
-    public void visit(OpProject opProject) {
-        for (Var var : opProject.getVars()) {
-            action(var);
-        }
-    }
-
-    @Override
-    public void visit(OpGroup opGroup) {
-        Collection<Var> vars = new ArrayList<>();
-        for (Var var : opGroup.getGroupVars().getVars()) {
-            vars.add(var);
-            ExprVars.varsMentioned(vars, opGroup.getGroupVars().getExpr(var));
-        }
-    }
-
-    @Override
-    public void visit(OpTopN opTop) {
-        Collection<Var> vars = new ArrayList<>();
-        for (SortCondition condition : opTop.getConditions()) {
-            ExprVars.varsMentioned(vars, condition);
-        }
-        action(vars);
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
new file mode 100644
index 0000000..89dfc87
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -0,0 +1,536 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.algebra.optimize;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.jena.atlas.lib.CollectionUtils;
+
+import org.apache.jena.query.SortCondition;
+import org.apache.jena.sparql.algebra.Op;
+import org.apache.jena.sparql.algebra.OpVisitor;
+import org.apache.jena.sparql.algebra.OpVisitorBase;
+import org.apache.jena.sparql.algebra.Transform;
+import org.apache.jena.sparql.algebra.TransformCopy;
+import org.apache.jena.sparql.algebra.Transformer;
+import org.apache.jena.sparql.algebra.op.OpExt;
+import org.apache.jena.sparql.algebra.op.OpExtend;
+import org.apache.jena.sparql.algebra.op.OpFilter;
+import org.apache.jena.sparql.algebra.op.OpGroup;
+import org.apache.jena.sparql.algebra.op.OpOrder;
+import org.apache.jena.sparql.algebra.op.OpProject;
+import org.apache.jena.sparql.algebra.op.OpTopN;
+import org.apache.jena.sparql.core.Var;
+import org.apache.jena.sparql.core.VarExprList;
+import org.apache.jena.sparql.expr.Expr;
+import org.apache.jena.sparql.expr.ExprAggregator;
+import org.apache.jena.sparql.expr.ExprLib;
+import org.apache.jena.sparql.expr.ExprList;
+import org.apache.jena.sparql.expr.ExprTransform;
+import org.apache.jena.sparql.expr.ExprTransformSubstitute;
+import org.apache.jena.sparql.expr.ExprTransformer;
+import org.apache.jena.sparql.expr.ExprVars;
+import org.apache.jena.sparql.expr.NodeValue;
+
+/**
+ * A transform that tries to in-line/eliminate assignments
+ * <p>
+ * There are two classes of assignments that we can try and in-line/eliminate:
+ * </p>
+ * <ol>
+ * <li>Assignments where the assigned variable is used only once in a subsequent
+ * assignment can be in-lined</li>
+ * <li>Assignments where the assigned value is never used elsewhere can be
+ * eliminated</li>
+ * </ol>
+ * <p>
+ * Both of these changes can only happen inside of projections as otherwise we
+ * have to assume that the user may need the resulting variable and thus we
+ * leave the assignment alone. Assignments to be in-lined must also be
+ * deterministic i.e. moving their placement in the query and thus the possible
+ * solutions they might operate must not change their outputs. Whether an
+ * expression is deterministic is defined by {@link ExprLib#isStable(Expr)}.
+ * </p>
+ * <p>
+ * Assignments may be in-lined in the following places:
+ * </p>
+ * <ul>
+ * <li>Filter Expressions</li>
+ * <li>Bind and Select Expressions</li>
+ * <li>Order By Expressions if aggressive in-lining is enabled or the assigned
+ * expression is a constant</li>
+ * </ul>
+ * <p>
+ * In the case of order by we only in-line assignments when aggressive mode is
+ * set as the realities of order by are that expressions may be recomputed
+ * multiple times and so in-lining may actually hurt performance in those cases
+ * unless the expression to be in-lined is itself a constant.
+ * </p>
+ */
+public class TransformEliminateAssignments extends TransformCopy {
+
+    public static Op eliminate(Op op) {
+        return eliminate(op, false);
+    }
+
+    public static Op eliminate(Op op, boolean aggressive) {
+        AssignmentTracker tracker = new AssignmentTracker();
+        AssignmentPusher pusher = new AssignmentPusher(tracker);
+        AssignmentPopper popper = new AssignmentPopper(tracker);
+        Transform transform = new TransformEliminateAssignments(tracker, pusher, popper, aggressive);
+
+        return Transformer.transformSkipService(transform, op, pusher, popper);
+    }
+
+    private final OpVisitor before, after;
+    private final AssignmentTracker tracker;
+    private final boolean aggressive;
+
+    private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after) {
+        this(tracker, before, after, false);
+    }
+
+    private TransformEliminateAssignments(AssignmentTracker tracker, OpVisitor before, OpVisitor after,
+            boolean aggressive) {
+        this.tracker = tracker;
+        this.before = before;
+        this.after = after;
+        this.aggressive = aggressive;
+    }
+
+    protected boolean canInline(Expr e) {
+        if (e == null)
+            return false;
+        return ExprLib.isStable(e);
+    }
+
+    protected boolean shouldInline(Expr e) {
+        if (e == null)
+            return false;
+
+        // Inline everything when being aggressive
+        if (this.aggressive)
+            return true;
+
+        // If not being aggressive only inline if the expression is a constant
+        return e.isConstant() || e instanceof NodeValue;
+    }
+
+    protected boolean isApplicable() {
+        // Can only be applied if we are inside a projection as otherwise the
+        // assigned variables need to remain visible
+        if (!this.tracker.insideProjection())
+            return false;
+        // If there are no eligible assignments then don't bother doing any work
+        if (this.tracker.assignments.size() == 0)
+            return false;
+
+        // Otherwise may be applicable
+        return true;
+    }
+
+    @Override
+    public Op transform(OpExt opExt) {
+        return opExt.apply(this, this.before, this.after);
+    }
+
+    @Override
+    public Op transform(OpFilter opFilter, Op subOp) {
+        if (!this.isApplicable())
+            return super.transform(opFilter, subOp);
+
+        // See what vars are used in the filter
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opFilter.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+
+        // Are any of these vars single usage?
+        ExprList exprs = opFilter.getExprs();
+        boolean modified = false;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this filter
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+                // Can go back and eliminate that assignment
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression
+                exprs = ExprTransformer.transform(new ExprTransformSubstitute(var, e), exprs);
+                this.tracker.getAssignments().remove(var);
+                modified = true;
+            }
+        }
+
+        // Create a new filter if we've substituted any expressions
+        if (modified) {
+            return OpFilter.filter(exprs, subOp);
+        }
+
+        return super.transform(opFilter, subOp);
+    }
+
+    private boolean hasAssignment(Var var) {
+        return this.tracker.getAssignments().containsKey(var);
+    }
+
+    private Expr getAssignExpr(Var var) {
+        return this.tracker.getAssignments().get(var);
+    }
+
+    @Override
+    public Op transform(OpExtend opExtend, Op subOp) {
+        // No point tracking assignments if not in a projection as we can't
+        // possibly eliminate them without a projection to hide the fact that
+        // the assigned value is unnecessary or only used once
+        if (!this.tracker.insideProjection())
+            return super.transform(opExtend, subOp);
+
+        // Track the assignments for future reference
+        this.tracker.putAssignments(opExtend.getVarExprList());
+
+        // Eliminate and inline assignments
+        VarExprList unusedAssignments = processUnused(opExtend.getVarExprList());
+        VarExprList newAssignments = new VarExprList();
+        for (Var assignVar : opExtend.getVarExprList().getVars()) {
+            // If unused eliminate
+            if (unusedAssignments != null && unusedAssignments.contains(assignVar))
+                continue;
+
+            Expr currExpr = opExtend.getVarExprList().getExpr(assignVar);
+
+            // See what vars are used in the current expression
+            Collection<Var> vars = new ArrayList<>();
+            ExprVars.varsMentioned(vars, currExpr);
+
+            // See if we can inline anything
+            for (Var var : vars) {
+                // Usage count will be 2 if we can eliminate the assignment
+                // First usage is when it is introduced by the assignment and
+                // the second is when it is used now used in another assignment
+                Expr e = getAssignExpr(var);
+                if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+                    // Can go back and eliminate that assignment
+                    subOp = eliminateAssignment(subOp, var);
+                    // Replace the variable usage with the expression within
+                    // expression
+                    currExpr = ExprTransformer.transform(new ExprTransformSubstitute(var, e), currExpr);
+                    this.tracker.getAssignments().remove(var);
+
+                    // Need to update any assignments we may be tracking that
+                    // refer to the variable we just inlined
+                    this.tracker.updateAssignments(var, e);
+
+                    // If the assignment to be eliminated was introduced by the
+                    // extend we are processing need to remove it from the
+                    // VarExprList we are currently building
+                    if (newAssignments.contains(var) && newAssignments.getExpr(var).equals(e)) {
+                        newAssignments.getVars().remove(var);
+                        newAssignments.getExprs().remove(var);
+                    }
+                }
+            }
+            newAssignments.add(assignVar, currExpr);
+        }
+
+        // May be able to eliminate the extend entirely in some cases
+        if (newAssignments.size() > 0) {
+            return OpExtend.extend(subOp, newAssignments);
+        } else {
+            return subOp;
+        }
+    }
+
+    private VarExprList processUnused(VarExprList assignments) {
+        if (CollectionUtils.disjoint(assignments.getVars(), this.tracker.getAssignments().keySet()))
+            return null;
+
+        VarExprList singleUse = new VarExprList();
+        for (Var var : assignments.getVars()) {
+            if (this.tracker.getUsageCount(var) == 1)
+                singleUse.add(var, assignments.getExpr(var));
+        }
+
+        // If nothing is single use
+        if (singleUse.size() == 0)
+            return null;
+
+        return singleUse;
+    }
+
+    @Override
+    public Op transform(OpOrder opOrder, Op subOp) {
+        if (!this.isApplicable())
+            return super.transform(opOrder, subOp);
+
+        // See what vars are used in the sort conditions
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition cond : opOrder.getConditions()) {
+            ExprVars.varsMentioned(vars, cond.getExpression());
+        }
+
+        // Are any of these vars single usage?
+        List<SortCondition> conditions = null;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this order expression
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
+                // Can go back and eliminate that assignment
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression within the
+                // sort conditions
+                conditions = processConditions(opOrder.getConditions(), conditions, var);
+                this.tracker.getAssignments().remove(var);
+            }
+        }
+
+        // Create a new order if we've substituted any expressions
+        if (conditions != null) {
+            return new OpOrder(subOp, conditions);
+        }
+
+        return super.transform(opOrder, subOp);
+    }
+
+    private List<SortCondition> processConditions(List<SortCondition> baseConditions,
+            List<SortCondition> processedConditions, Var var) {
+        List<SortCondition> inputConditions = processedConditions != null ? processedConditions : baseConditions;
+        List<SortCondition> outputConditions = new ArrayList<>();
+
+        for (SortCondition cond : inputConditions) {
+            Expr e = cond.getExpression();
+            e = ExprTransformer.transform(new ExprTransformSubstitute(var, getAssignExpr(var)), e);
+            outputConditions.add(new SortCondition(e, cond.getDirection()));
+        }
+
+        return outputConditions;
+    }
+
+    @Override
+    public Op transform(OpTopN opTop, Op subOp) {
+        if (!this.isApplicable())
+            return super.transform(opTop, subOp);
+
+        // See what vars are used in the sort conditions
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition cond : opTop.getConditions()) {
+            ExprVars.varsMentioned(vars, cond.getExpression());
+        }
+
+        // Are any of these vars single usage?
+        List<SortCondition> conditions = null;
+        for (Var var : vars) {
+            // Usage count will be 2 if we can eliminate the assignment
+            // First usage is when it is introduced by the assignment and the
+            // second is when it is used now in this filter
+            Expr e = getAssignExpr(var);
+            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e) && shouldInline(e)) {
+                // Can go back and eliminate that assignment
+                subOp = eliminateAssignment(subOp, var);
+                // Replace the variable usage with the expression within the
+                // sort conditions
+                conditions = processConditions(opTop.getConditions(), conditions, var);
+                this.tracker.getAssignments().remove(var);
+            }
+        }
+
+        // Create a new order if we've substituted any expressions
+        if (conditions != null) {
+            return new OpTopN(subOp, opTop.getLimit(), conditions);
+        }
+
+        return super.transform(opTop, subOp);
+    }
+
+    @Override
+    public Op transform(OpGroup opGroup, Op subOp) {
+        return super.transform(opGroup, subOp);
+
+        // TODO Unclear if this will work properly or not because group can
+        // introduce new assignments as well as evaluate expressions
+
+        //@formatter:off
+//        if (!this.isApplicable())
+//            return super.transform(opGroup, subOp);
+//
+//        // See what vars are used in the filter
+//        Collection<Var> vars = new ArrayList<>();
+//        VarExprList exprs = new VarExprList(opGroup.getGroupVars());
+//        List<ExprAggregator> aggs = new ArrayList<ExprAggregator>(opGroup.getAggregators());
+//        for (Expr expr : exprs.getExprs().values()) {
+//            ExprVars.varsMentioned(vars, expr);
+//        }
+//
+//        // Are any of these vars single usage?
+//        boolean modified = false;
+//        for (Var var : vars) {
+//            // Usage count will be 2 if we can eliminate the assignment
+//            // First usage is when it is introduced by the assignment and the
+//            // second is when it is used now in this group by
+//            Expr e = getAssignExpr(var);
+//            if (this.tracker.getUsageCount(var) == 2 && hasAssignment(var) && canInline(e)) {
+//                // Can go back and eliminate that assignment
+//                subOp = eliminateAssignment(subOp, var);
+//                // Replace the variable usage with the expression in both the
+//                // expressions and the aggregators
+//                ExprTransform transform = new ExprTransformSubstitute(var, e);
+//                exprs = processVarExprList(exprs, transform);
+//                aggs = processAggregators(aggs, transform);
+//                this.tracker.getAssignments().remove(var);
+//                modified = true;
+//            }
+//        }
+//
+//        // Create a new group by if we've substituted any expressions
+//        if (modified) {
+//            return new OpGroup(subOp, exprs, aggs);
+//        }
+//
+//        return super.transform(opGroup, subOp);
+        //@formatter:on
+    }
+
+    private Op eliminateAssignment(Op subOp, Var var) {
+        return Transformer.transform(new TransformRemoveAssignment(var, getAssignExpr(var)), subOp);
+    }
+
+    @SuppressWarnings("unused")
+    private VarExprList processVarExprList(VarExprList exprs, ExprTransform transform) {
+        VarExprList newExprs = new VarExprList();
+        for (Var v : exprs.getVars()) {
+            Expr e = exprs.getExpr(v);
+            Expr e2 = ExprTransformer.transform(transform, e);
+            newExprs.add(v, e2);
+        }
+        return newExprs;
+    }
+
+    @SuppressWarnings("unused")
+    private List<ExprAggregator> processAggregators(List<ExprAggregator> aggs, ExprTransform transform) {
+        List<ExprAggregator> newAggs = new ArrayList<ExprAggregator>();
+        for (ExprAggregator agg : aggs) {
+            ExprAggregator e2 = (ExprAggregator) ExprTransformer.transform(transform, agg);
+            newAggs.add(e2);
+        }
+        return newAggs;
+    }
+
+    private static class AssignmentTracker extends VariableUsageTracker {
+
+        private Map<Var, Expr> assignments = new HashMap<>();
+        private int depth = 0;
+
+        public Map<Var, Expr> getAssignments() {
+            return this.assignments;
+        }
+
+        public void putAssignments(VarExprList assignments) {
+            for (Var var : assignments.getVars()) {
+                int i = getUsageCount(var);
+                if (i <= 2) {
+                    this.assignments.put(var, assignments.getExpr(var));
+                } else {
+                    this.assignments.remove(var);
+                }
+            }
+        }
+
+        @Override
+        public void increment(String var) {
+            super.increment(var);
+
+            int i = getUsageCount(var);
+            if (i > 2) {
+                this.assignments.remove(var);
+            }
+        }
+
+        public void updateAssignments(Var v, Expr e) {
+            ExprTransformSubstitute transform = new ExprTransformSubstitute(v, e);
+            for (Var assignVar : this.assignments.keySet()) {
+                Expr assignExpr = this.assignments.get(assignVar);
+                assignExpr = ExprTransformer.transform(transform, assignExpr);
+                this.assignments.put(assignVar, assignExpr);
+            }
+        }
+
+        public void incrementDepth() {
+            this.depth++;
+        }
+
+        public void decrementDepth() {
+            this.depth--;
+            // Clear all assignments if not inside a project
+            if (this.depth == 0)
+                this.assignments.clear();
+        }
+
+        public boolean insideProjection() {
+            return this.depth > 0;
+        }
+    }
+
+    private static class AssignmentPusher extends VariableUsagePusher {
+
+        private AssignmentTracker tracker;
+
+        public AssignmentPusher(AssignmentTracker tracker) {
+            super(tracker);
+            this.tracker = tracker;
+        }
+
+        @Override
+        public void visit(OpProject opProject) {
+            super.visit(opProject);
+            this.tracker.incrementDepth();
+        }
+    }
+
+    private static class AssignmentPopper extends OpVisitorBase {
+
+        private AssignmentTracker tracker;
+
+        public AssignmentPopper(AssignmentTracker tracker) {
+            this.tracker = tracker;
+        }
+
+        @Override
+        public void visit(OpProject opProject) {
+            // Any assignments that are not projected should be discarded at
+            // this point
+            Iterator<Var> vars = tracker.getAssignments().keySet().iterator();
+            while (vars.hasNext()) {
+                Var var = vars.next();
+                if (!opProject.getVars().contains(var))
+                    vars.remove();
+            }
+            tracker.pop();
+            this.tracker.decrementDepth();
+        }
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformRemoveAssignment.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
new file mode 100644
index 0000000..6379d5b
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.algebra.optimize;
+
+import org.apache.jena.sparql.algebra.Op;
+import org.apache.jena.sparql.algebra.TransformCopy;
+import org.apache.jena.sparql.algebra.op.OpAssign;
+import org.apache.jena.sparql.algebra.op.OpExtend;
+import org.apache.jena.sparql.algebra.op.OpExtendAssign;
+import org.apache.jena.sparql.core.Var;
+import org.apache.jena.sparql.core.VarExprList;
+import org.apache.jena.sparql.expr.Expr;
+
+/**
+ * A transform capable of removing assignments from the algebra tree
+ * 
+ */
+public class TransformRemoveAssignment extends TransformCopy {
+
+    private Var var;
+    private Expr expr;
+    private boolean topmostOnly = true;
+
+    public TransformRemoveAssignment(Var var, Expr expr, boolean topmostOnly) {
+        this.var = var;
+        this.expr = expr;
+        this.topmostOnly = topmostOnly;
+    }
+
+    public TransformRemoveAssignment(Var var, Expr expr) {
+        this(var, expr, true);
+    }
+
+    @Override
+    public Op transform(OpAssign opAssign, Op subOp) {
+        VarExprList assignments = processAssignments(opAssign);
+        if (assignments == null)
+            return super.transform(opAssign, subOp);
+
+        // Rewrite appropriately
+        if (this.topmostOnly) {
+            // If topmost only ignore any transformations lower down the tree
+            // hence call getSubOp() rather than using the provided subOp
+            if (assignments.size() > 0) {
+                return OpAssign.assign(opAssign.getSubOp(), assignments);
+            } else {
+                return opAssign.getSubOp();
+            }
+        } else {
+            // Otherwise preserve any transformations from lower down the tree
+            if (assignments.size() > 0) {
+                return OpAssign.assign(subOp, assignments);
+            } else {
+                return subOp;
+            }
+        }
+    }
+
+    private VarExprList processAssignments(OpExtendAssign opAssign) {
+        VarExprList orig = opAssign.getVarExprList();
+        if (!orig.contains(this.var))
+            return null;
+        if (!orig.getExpr(this.var).equals(this.expr))
+            return null;
+
+        VarExprList modified = new VarExprList();
+        for (Var v : orig.getVars()) {
+            if (!v.equals(this.var)) {
+                modified.add(v, orig.getExpr(v));
+            }
+        }
+        return modified;
+    }
+
+    @Override
+    public Op transform(OpExtend opExtend, Op subOp) {
+        VarExprList assignments = processAssignments(opExtend);
+        if (assignments == null)
+            return super.transform(opExtend, subOp);
+
+        // Rewrite appropriately
+        if (this.topmostOnly) {
+            // If topmost only ignore any transformations lower down the tree
+            // hence call getSubOp() rather than using the provided subOp
+            if (assignments.size() > 0) {
+                return OpExtend.extend(opExtend.getSubOp(), assignments);
+            } else {
+                return opExtend.getSubOp();
+            }
+        } else {
+            // Otherwise preserve any transformations from lower down the tree
+            if (assignments.size() > 0) {
+                return OpExtend.extend(subOp, assignments);
+            } else {
+                return subOp;
+            }
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsagePopper.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsagePopper.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsagePopper.java
new file mode 100644
index 0000000..80b078b
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsagePopper.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+
+import org.apache.jena.sparql.algebra.op.OpProject;
+import org.apache.jena.sparql.core.Var;
+
+/**
+ * An after visitor for tracking variable usage
+ * 
+ */
+public class VariableUsagePopper extends VariableUsageVisitor {
+
+    public VariableUsagePopper(VariableUsageTracker tracker) {
+        super(tracker);
+    }
+
+    @Override
+    protected void action(Collection<Var> vars) {
+        this.tracker.decrement(vars);
+    }
+
+    @Override
+    protected void action(Var var) {
+        this.tracker.decrement(var);
+    }
+
+    @Override
+    protected void action(String var) {
+        this.tracker.decrement(var);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        super.visit(opProject);
+        this.tracker.pop();
+        super.visit(opProject);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsagePusher.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsagePusher.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsagePusher.java
new file mode 100644
index 0000000..bc778d0
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsagePusher.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+
+import org.apache.jena.sparql.algebra.op.OpProject;
+import org.apache.jena.sparql.core.Var;
+
+/**
+ * A before visitor for tracking variable usage
+ * 
+ */
+public class VariableUsagePusher extends VariableUsageVisitor {
+
+    public VariableUsagePusher(VariableUsageTracker tracker) {
+        super(tracker);
+    }
+
+    @Override
+    protected void action(Collection<Var> vars) {
+        this.tracker.increment(vars);
+    }
+
+    @Override
+    protected void action(Var var) {
+        this.tracker.increment(var);
+    }
+
+    @Override
+    protected void action(String var) {
+        this.tracker.increment(var);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        super.visit(opProject);
+        this.tracker.push();
+        super.visit(opProject);
+    }
+
+    
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsageTracker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsageTracker.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsageTracker.java
new file mode 100644
index 0000000..00c98a1
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsageTracker.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.algebra.optimize;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Stack;
+
+import org.apache.jena.sparql.core.Var;
+
+/**
+ * Tracker for variable usage
+ * 
+ */
+public class VariableUsageTracker {
+
+    private Stack<Map<String, Integer>> stack = new Stack<>();
+    private Map<String, Integer> variables = new HashMap<>();
+
+    public void push() {
+        this.stack.push(this.variables);
+        this.variables = new HashMap<>();
+    }
+
+    public void pop() {
+        if (this.stack.size() == 0)
+            throw new IllegalStateException("Stack is empty");
+        this.variables = this.stack.pop();
+    }
+
+    public void increment(Collection<Var> vars) {
+        for (Var var : vars) {
+            increment(var);
+        }
+    }
+
+    public void increment(String var) {
+        if (!variables.containsKey(var)) {
+            variables.put(var, 1);
+        } else {
+            variables.put(var, variables.get(var) + 1);
+        }
+    }
+
+    public void increment(Var var) {
+        increment(var.getName());
+    }
+
+    public void decrement(Collection<Var> vars) {
+        for (Var var : vars) {
+            decrement(var);
+        }
+    }
+
+    public void decrement(String var) {
+        if (variables.containsKey(var)) {
+            variables.put(var, variables.get(var) - 1);
+            if (variables.get(var) <= 0)
+                variables.remove(var);
+        }
+    }
+
+    public void decrement(Var var) {
+        decrement(var.getName());
+    }
+
+    public int getUsageCount(String var) {
+        Integer i = variables.get(var);
+        return i != null ? i.intValue() : 0;
+    }
+
+    public int getUsageCount(Var var) {
+        return getUsageCount(var.getName());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/263d8426/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsageVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsageVisitor.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsageVisitor.java
new file mode 100644
index 0000000..3a86dc9
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/VariableUsageVisitor.java
@@ -0,0 +1,204 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.algebra.optimize;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.query.SortCondition;
+import org.apache.jena.sparql.algebra.OpVisitorBase;
+import org.apache.jena.sparql.algebra.op.OpAssign;
+import org.apache.jena.sparql.algebra.op.OpBGP;
+import org.apache.jena.sparql.algebra.op.OpDatasetNames;
+import org.apache.jena.sparql.algebra.op.OpExtend;
+import org.apache.jena.sparql.algebra.op.OpFilter;
+import org.apache.jena.sparql.algebra.op.OpGraph;
+import org.apache.jena.sparql.algebra.op.OpGroup;
+import org.apache.jena.sparql.algebra.op.OpLeftJoin;
+import org.apache.jena.sparql.algebra.op.OpOrder;
+import org.apache.jena.sparql.algebra.op.OpPath;
+import org.apache.jena.sparql.algebra.op.OpProject;
+import org.apache.jena.sparql.algebra.op.OpPropFunc;
+import org.apache.jena.sparql.algebra.op.OpQuadBlock;
+import org.apache.jena.sparql.algebra.op.OpQuadPattern;
+import org.apache.jena.sparql.algebra.op.OpTable;
+import org.apache.jena.sparql.algebra.op.OpTopN;
+import org.apache.jena.sparql.core.Quad;
+import org.apache.jena.sparql.core.Var;
+import org.apache.jena.sparql.core.Vars;
+import org.apache.jena.sparql.expr.Expr;
+import org.apache.jena.sparql.expr.ExprVars;
+
+/**
+ * A visitor which tracks variable usage
+ * 
+ */
+public abstract class VariableUsageVisitor extends OpVisitorBase {
+
+    protected VariableUsageTracker tracker;
+
+    public VariableUsageVisitor(VariableUsageTracker tracker) {
+        this.tracker = tracker;
+    }
+
+    protected abstract void action(Collection<Var> vars);
+
+    protected abstract void action(Var var);
+
+    protected abstract void action(String var);
+    
+    @Override
+    public void visit(OpBGP opBGP) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Triple t : opBGP.getPattern().getList()) {
+            Vars.addVarsFromTriple(vars, t);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpQuadPattern quadPattern) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Quad q : quadPattern.getPattern().getList()) {
+            Vars.addVarsFromQuad(vars, q);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpQuadBlock quadBlock) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Quad q : quadBlock.getPattern().getList()) {
+            Vars.addVarsFromQuad(vars, q);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpPath opPath) {
+        if (opPath.getTriplePath().getSubject().isVariable())
+            action(opPath.getTriplePath().getSubject().getName());
+        if (opPath.getTriplePath().getObject().isVariable())
+            action(opPath.getTriplePath().getObject().getName());
+    }
+
+    @Override
+    public void visit(OpPropFunc opPropFunc) {
+        for (Node subjArg : opPropFunc.getSubjectArgs().getArgList()) {
+            if (subjArg.isVariable())
+                action(subjArg.getName());
+        }
+        for (Node objArg : opPropFunc.getObjectArgs().getArgList()) {
+            if (objArg.isVariable())
+                action(objArg.getName());
+        }
+    }
+
+    @Override
+    public void visit(OpLeftJoin opLeftJoin) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opLeftJoin.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpFilter opFilter) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Expr expr : opFilter.getExprs().getList()) {
+            ExprVars.varsMentioned(vars, expr);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpGraph opGraph) {
+        if (opGraph.getNode().isVariable())
+            action(opGraph.getNode().getName());
+    }
+
+    @Override
+    public void visit(OpDatasetNames dsNames) {
+        if (dsNames.getGraphNode().isVariable())
+            action(dsNames.getGraphNode().getName());
+    }
+
+    @Override
+    public void visit(OpTable opTable) {
+        action(opTable.getTable().getVars());
+    }
+
+    @Override
+    public void visit(OpAssign opAssign) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opAssign.getVarExprList().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opAssign.getVarExprList().getExpr(var));
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpExtend opExtend) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opExtend.getVarExprList().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opExtend.getVarExprList().getExpr(var));
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpOrder opOrder) {
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition condition : opOrder.getConditions()) {
+            ExprVars.varsMentioned(vars, condition);
+        }
+        action(vars);
+    }
+
+    @Override
+    public void visit(OpProject opProject) {
+        for (Var var : opProject.getVars()) {
+            action(var);
+        }
+    }
+
+    @Override
+    public void visit(OpGroup opGroup) {
+        Collection<Var> vars = new ArrayList<>();
+        for (Var var : opGroup.getGroupVars().getVars()) {
+            vars.add(var);
+            ExprVars.varsMentioned(vars, opGroup.getGroupVars().getExpr(var));
+        }
+    }
+
+    @Override
+    public void visit(OpTopN opTop) {
+        Collection<Var> vars = new ArrayList<>();
+        for (SortCondition condition : opTop.getConditions()) {
+            ExprVars.varsMentioned(vars, condition);
+        }
+        action(vars);
+    }
+
+}
\ No newline at end of file


[26/26] jena git commit: Merge branch 'eliminate-assignments-jena3' (JENA-780)

Posted by rv...@apache.org.
Merge branch 'eliminate-assignments-jena3' (JENA-780)

Adds support for the new assignment inlining optimization to the master
branch.  This optimisation is off by default but can be enabled by the
context switch optInlineAssignments and made aggressive using the context
switch optInlineAssignmentsAggressive


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/459f0693
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/459f0693
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/459f0693

Branch: refs/heads/master
Commit: 459f069355bbe2419db9e628a472532652ac37b6
Parents: 651f053 d28edb4
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Jul 7 10:23:09 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Jul 7 10:23:09 2015 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/jena/query/ARQ.java    |  12 +
 .../jena/sparql/algebra/optimize/Optimize.java  |   9 +-
 .../optimize/TransformEliminateAssignments.java | 536 +++++++++++++++++++
 .../optimize/TransformRemoveAssignment.java     | 116 ++++
 .../algebra/optimize/VariableUsagePopper.java   |  57 ++
 .../algebra/optimize/VariableUsagePusher.java   |  59 ++
 .../algebra/optimize/VariableUsageTracker.java  |  92 ++++
 .../algebra/optimize/VariableUsageVisitor.java  | 204 +++++++
 .../algebra/optimize/TS_Optimization.java       |   1 +
 .../TestTransformEliminateAssignments.java      | 432 +++++++++++++++
 10 files changed, 1517 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[17/26] jena git commit: Some clean up of assignment inlining/elimination (JENA-780)

Posted by rv...@apache.org.
Some clean up of assignment inlining/elimination (JENA-780)

- Add context keys to control it as part of standard optimizer (disabled
  by default)
- When applying it don't apply inside of SERVICE


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/39e4fd59
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/39e4fd59
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/39e4fd59

Branch: refs/heads/jena2
Commit: 39e4fd590d4b859d8cf416bb928b54b749471483
Parents: d6f516d
Author: Rob Vesse <rv...@apache.org>
Authored: Mon Jul 6 16:01:55 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Mon Jul 6 16:01:55 2015 +0100

----------------------------------------------------------------------
 jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java   | 12 ++++++++++++
 .../hp/hpl/jena/sparql/algebra/optimize/Optimize.java   |  4 ++++
 .../algebra/optimize/TransformEliminateAssignments.java |  5 +++--
 3 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/39e4fd59/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java b/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
index 5262c7e..3ebe3bc 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
@@ -403,6 +403,18 @@ public class ARQ
     public static final Symbol optIndexJoinStrategy = ARQConstants.allocSymbol("optIndexJoinStrategy");
     
     /**
+     * Context key controlling whether the standard optimizer applies optimizations where by some
+     * assignments may be eliminated/inlined into the operators where their values are used only once
+     */
+    public static final Symbol optInlineAssignments = ARQConstants.allocSymbol("optInlineAssignments");
+    
+    /**
+     * Context key controlling whether the standard optimizer aggressively inlines assignments whose
+     * values are used only once into operators where those expressions may be evaluated multiple times e.g. order
+     */
+    public static final Symbol optInlineAssignmentsAggressive = ARQConstants.allocSymbol("optInlineAssignmentsAggressive");
+    
+    /**
      * Context key controlling whether the standard optimizater applies optimizations to joined BGPs to
      * merge them into single BGPs.
      * By default, this transformation is applied.

http://git-wip-us.apache.org/repos/asf/jena/blob/39e4fd59/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
index 150e122..180bfd4 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
@@ -236,6 +236,10 @@ public class Optimize implements Rewrite
         if ( context.isTrue(ARQ.optFilterInequality) )
             op = apply("Filter Inequality", new TransformFilterInequality(), op);
         
+        // Eliminate/Inline assignments where possible
+        if ( context.isTrue(ARQ.optInlineAssignments) )
+            op = TransformEliminateAssignments.eliminate(op, context.isTrue(ARQ.optInlineAssignmentsAggressive));
+        
         // Promote table empty as late as possible since this will only be produced by other 
         // optimizations and never directly from algebra generation
         if ( context.isTrueOrUndef(ARQ.optPromoteTableEmpty) )

http://git-wip-us.apache.org/repos/asf/jena/blob/39e4fd59/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 59e77c2..c468272 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -78,7 +78,8 @@ import com.hp.hpl.jena.sparql.expr.NodeValue;
  * <ul>
  * <li>Filter Expressions</li>
  * <li>Bind and Select Expressions</li>
- * <li>Order By Expressions if aggressive in-lining is enabled</li>
+ * <li>Order By Expressions if aggressive in-lining is enabled or the assigned
+ * expression is a constant</li>
  * </ul>
  * <p>
  * In the case of order by we only in-line assignments when aggressive mode is
@@ -99,7 +100,7 @@ public class TransformEliminateAssignments extends TransformCopy {
         AssignmentPopper popper = new AssignmentPopper(tracker);
         Transform transform = new TransformEliminateAssignments(tracker, pusher, popper, aggressive);
 
-        return Transformer.transform(transform, op, pusher, popper);
+        return Transformer.transformSkipService(transform, op, pusher, popper);
     }
 
     private final OpVisitor before, after;