This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit 13f3f13b50c1df166e94c27d36dc1a2138c2cf92 Author: Andy Seaborne <[email protected]> AuthorDate: Tue Dec 16 10:43:34 2025 +0000 Remove old 'afn:' triple term functions in favour of std RDF 1.2 --- .../org/apache/jena/sparql/expr/E_TripleFn.java | 1 + .../library/triple/TripleTermFunctions.java | 32 ---------------------- .../function/library/triple/TripleTermOps.java | 8 ++++++ .../java/org/apache/jena/sparql/expr/TS_Expr.java | 2 +- ...TermFunctions.java => TestExprTripleTerms.java} | 3 +- 5 files changed, 11 insertions(+), 35 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_TripleFn.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_TripleFn.java index d544ba8f15..b73205d042 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_TripleFn.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_TripleFn.java @@ -21,6 +21,7 @@ package org.apache.jena.sparql.expr; import org.apache.jena.sparql.function.library.triple.TripleTermOps; import org.apache.jena.sparql.sse.Tags; +// The function "TRIPLE", not "<<( )>>", used in an expression. public class E_TripleFn extends ExprFunction3 { private static final String symbol = Tags.tagFnTriple; diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/triple/TripleTermFunctions.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/triple/TripleTermFunctions.java deleted file mode 100644 index 567201c46d..0000000000 --- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/triple/TripleTermFunctions.java +++ /dev/null @@ -1,32 +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 org.apache.jena.sparql.function.library.triple; - -import org.apache.jena.sparql.ARQConstants; -import org.apache.jena.sparql.function.FunctionRegistry; - -public class TripleTermFunctions { - public static void register(FunctionRegistry functionRegistry) { - functionRegistry.put(ARQConstants.ARQFunctionLibraryURI+"subject", TripleSubject.class); - functionRegistry.put(ARQConstants.ARQFunctionLibraryURI+"predicate", TriplePredicate.class); - functionRegistry.put(ARQConstants.ARQFunctionLibraryURI+"object", TripleObject.class); - functionRegistry.put(ARQConstants.ARQFunctionLibraryURI+"triple", TripleTerm.class); - functionRegistry.put(ARQConstants.ARQFunctionLibraryURI+"isTriple", IsTripleTerm.class); - } -} diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/triple/TripleTermOps.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/triple/TripleTermOps.java index a3e0bffe4c..fef91618a5 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/triple/TripleTermOps.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/triple/TripleTermOps.java @@ -23,6 +23,7 @@ import java.util.function.Function; import org.apache.jena.graph.Node; import org.apache.jena.graph.NodeFactory; import org.apache.jena.graph.Triple; +import org.apache.jena.query.ARQ; import org.apache.jena.sparql.expr.ExprEvalException; import org.apache.jena.sparql.expr.NodeValue; @@ -33,6 +34,13 @@ public class TripleTermOps { */ public static NodeValue fnTriple(NodeValue nv1, NodeValue nv2, NodeValue nv3) { Node s = nv1.asNode(); + if ( ARQ.isStrictMode() ) { + if ( s.isTripleTerm() ) + throw new ExprEvalException("triple: Subject is a triple term: "+nv1); + if ( !s.isURI() && !s.isBlank() ) + throw new ExprEvalException("triple: Subject is not a URI or blank node: "+nv2); + } + Node p = nv2.asNode(); if ( ! p.isURI() ) throw new ExprEvalException("triple: Predicate not a URI: "+nv2); diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java index 2d70825d94..06efb7eee7 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java @@ -39,7 +39,7 @@ import org.apache.jena.sparql.expr.nodevalue.TestNodeValueSortKey; , TestFunctions.class , TestFunctions2.class , TestFunctionsByURI.class - , TestTripleTermFunctions.class + , TestExprTripleTerms.class , TestLeviathanFunctions.class , TestNodeValueOps.class , TestOrdering.class diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestTripleTermFunctions.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExprTripleTerms.java similarity index 95% rename from jena-arq/src/test/java/org/apache/jena/sparql/expr/TestTripleTermFunctions.java rename to jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExprTripleTerms.java index 4d47b943b5..59f5e9ed0f 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestTripleTermFunctions.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExprTripleTerms.java @@ -34,9 +34,8 @@ import org.apache.jena.sys.JenaSystem; /** * Tests for TRIPLE, SUBJECT, PREDICATE, OBJECT, isTRIPLE - * and by URIs afn:triple(), afn:subject(), afn:predicate(), afn:object(), afn:isTriple(). */ -public class TestTripleTermFunctions { +public class TestExprTripleTerms { static { JenaSystem.init(); }
