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


The following commit(s) were added to refs/heads/main by this push:
     new f20761b324 CDTs disabled in strict mode
f20761b324 is described below

commit f20761b3241a70357d38ecb57ef0c63c5080fc34
Author: Andy Seaborne <[email protected]>
AuthorDate: Tue Dec 16 11:47:25 2025 +0000

    CDTs disabled in strict mode
---
 .../function/ARQFunctions.java => cdt/CDT.java}    | 24 +++--------
 .../src/main/java/org/apache/jena/query/ARQ.java   |  5 +++
 .../main/java/org/apache/jena/riot/RDFParser.java  | 19 ++++++--
 .../java/org/apache/jena/riot/system/RiotLib.java  | 30 ++++++-------
 .../java/org/apache/jena/sparql/ARQConstants.java  |  8 +++-
 .../java/org/apache/jena/sparql/SystemARQ.java     | 16 +++++--
 .../org/apache/jena/sparql/expr/NodeValue.java     |  5 ++-
 .../apache/jena/sparql/function/ARQFunctions.java  | 17 +++-----
 .../jena/sparql/function/FunctionRegistry.java     | 10 ++++-
 .../function/library/cdt/CDTLiteralFunctions.java  | 34 +++++++--------
 .../org/apache/jena/sparql/util/MappedLoader.java  |  5 ++-
 .../jena/sparql/expr/TestTripleTermFunctions.java  | 50 +++-------------------
 12 files changed, 105 insertions(+), 118 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/ARQFunctions.java 
b/jena-arq/src/main/java/org/apache/jena/cdt/CDT.java
similarity index 53%
copy from 
jena-arq/src/main/java/org/apache/jena/sparql/function/ARQFunctions.java
copy to jena-arq/src/main/java/org/apache/jena/cdt/CDT.java
index 9c76c03723..fd8de0e728 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/function/ARQFunctions.java
+++ b/jena-arq/src/main/java/org/apache/jena/cdt/CDT.java
@@ -14,26 +14,14 @@
  * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.apache.jena.sparql.function;
-
-import org.apache.jena.sparql.ARQConstants;
-import org.apache.jena.sparql.function.library.cdt.CDTLiteralFunctions;
-import org.apache.jena.sparql.function.library.triple.TripleTermFunctions;
+package org.apache.jena.cdt;
 
-/** Load ARQ functions ().
- * The one in package {@link org.apache.jena.sparql.function.library}
- * can be invoked by afn:name without registration because afn:-&gt;java: is 
built-in
- * in MappedLoader.
- *
- * @see ARQConstants#ARQFunctionLibraryURI
- * @see ARQConstants#ARQFunctionLibrary
- */
-public class ARQFunctions {
+public class CDT {
 
-    public static void load(FunctionRegistry reg) {
-        TripleTermFunctions.register(reg);
-        CDTLiteralFunctions.register(reg);
-    }
+    /** The CDT function library URI space */
+    public static final String CDTFunctionLibraryURI = 
"http://w3id.org/awslabs/neptune/SPARQL-CDTs/"; ;
 }
diff --git a/jena-arq/src/main/java/org/apache/jena/query/ARQ.java 
b/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
index c9c7eea4e9..3998dfc9b3 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
@@ -588,6 +588,7 @@ public class ARQ
         SystemARQ.StrictDateTimeFO      = true;
         SystemARQ.ValueExtensions       = false;
         SystemARQ.EnableRomanNumerals   = false;
+        SystemARQ.EnableCDTs            = false;
 
         context.set(optimization,                   false);
         context.set(hideNonDistiguishedVariables,   true);
@@ -609,6 +610,7 @@ public class ARQ
         SystemARQ.StrictDateTimeFO      = false;
         SystemARQ.ValueExtensions       = true;
         SystemARQ.EnableRomanNumerals   = false;
+        SystemARQ.EnableCDTs            = true;
         setNormalMode(ARQ.getContext());
     }
 
@@ -677,11 +679,14 @@ public class ARQ
         }
     }
 
+    // Settings for normal operation.
     private static void setARQSettings() {
         // This must be executable before initialization
         SystemARQ.StrictDateTimeFO      = false;
         SystemARQ.ValueExtensions       = true;
         SystemARQ.EnableRomanNumerals   = false;
+        SystemARQ.EnableCDTs            = true;
+
 
         // The system context is allocated in RIOT because RIOT initializes 
before ARQ.
         Context context = RIOT.getContext();
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java 
b/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
index ee3c884f51..fa6b105b93 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
@@ -52,6 +52,7 @@ import 
org.apache.jena.riot.process.normalize.StreamCanonicalLiterals;
 import org.apache.jena.riot.system.*;
 import org.apache.jena.riot.system.streammgr.StreamManager;
 import org.apache.jena.riot.web.HttpNames;
+import org.apache.jena.sparql.SystemARQ;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
@@ -541,9 +542,19 @@ public class RDFParser {
                 ? resolver
                 : 
IRIxResolver.create().base(baseStr).resolve(resolve).allowRelative(allowRelative).build();
         PrefixMap pmap = ( this.prefixMap != null ) ? this.prefixMap : 
PrefixMapFactory.create();
-        ParserProfileStd parserFactory = new CDTAwareParserProfile(factory, 
errorHandler,
-                                                                   
parserResolver, pmap,
-                                                                   context, 
checking$, strict);
-        return parserFactory;
+        ParserProfile parserProfile = createParserProfile(factory, 
errorHandler, parserResolver, pmap, context, checking$, strict);
+        return parserProfile;
+    }
+
+    private static ParserProfile createParserProfile(FactoryRDF factory, 
ErrorHandler errorHandler,
+                                         IRIxResolver parserResolver, 
PrefixMap prefixMap, Context context,
+                                         boolean checking, boolean strictMode) 
{
+        if ( SystemARQ.EnableCDTs )
+            return new CDTAwareParserProfile(factory, errorHandler,
+                                             parserResolver, prefixMap,
+                                             context, checking, strictMode);
+        return new ParserProfileStd(factory, errorHandler,
+                                    parserResolver, prefixMap,
+                                    context, checking, strictMode);
     }
 }
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/RiotLib.java 
b/jena-arq/src/main/java/org/apache/jena/riot/system/RiotLib.java
index 01c7eef99f..7a285fdd1e 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/RiotLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/RiotLib.java
@@ -45,6 +45,7 @@ import org.apache.jena.riot.*;
 import org.apache.jena.riot.lang.LabelToNode;
 import org.apache.jena.riot.writer.DirectiveStyle;
 import org.apache.jena.riot.writer.WriterGraphRIOTBase;
+import org.apache.jena.sparql.SystemARQ;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.core.Quad;
@@ -223,29 +224,24 @@ public class RiotLib {
     }
 
     /**
-     * Create a {@link ParserProfile} with default settings, and a specific 
error handler.
+     * Create a {@link ParserProfile} with a specific error handler,
+     * and otherwise default settings.
      */
     public static ParserProfile createParserProfile(FactoryRDF factory, 
ErrorHandler errorHandler, boolean checking) {
-        return new CDTAwareParserProfile(factory,
-                                    errorHandler,
-                                    
IRIxResolver.create(IRIs.getSystemBase()).build(),
-                                    PrefixMapFactory.create(),
-                                    RIOT.getContext().copy(),
-                                    checking,
-                                    false);
+        IRIxResolver resolver = 
IRIxResolver.create(IRIs.getSystemBase()).build();
+        return createParserProfile(factory, errorHandler, resolver, checking);
     }
 
     /**
-     * Create a {@link ParserProfile}.
+     * Create a {@link ParserProfile} with a specific error handler,
+     * and a specific IRI resolver and otherwise default settings.
      */
-    public static ParserProfile createParserProfile(FactoryRDF factory, 
ErrorHandler errorHandler,
-                                                    IRIxResolver resolver, 
boolean checking) {
-        return new CDTAwareParserProfile(factory,
-                errorHandler,
-                resolver,
-                PrefixMapFactory.create(),
-                RIOT.getContext().copy(),
-                checking, false);
+    public static ParserProfile createParserProfile(FactoryRDF factory, 
ErrorHandler errorHandler, IRIxResolver resolver, boolean checking) {
+        PrefixMap prefixMap = PrefixMapFactory.create();
+        Context context = RIOT.getContext().copy();
+        if ( SystemARQ.EnableCDTs )
+            return new CDTAwareParserProfile(factory, errorHandler, resolver, 
prefixMap, context, checking, false);
+        return new ParserProfileStd(factory, errorHandler, resolver, 
prefixMap, context, checking, false);
     }
 
     /**
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
index f67b2ca63c..e3c0cf0a5b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
@@ -18,6 +18,7 @@
 
 package org.apache.jena.sparql;
 
+import org.apache.jena.cdt.CDT;
 import org.apache.jena.shared.PrefixMapping ;
 import org.apache.jena.shared.impl.PrefixMappingImpl ;
 import org.apache.jena.sparql.core.Prologue;
@@ -86,9 +87,14 @@ public class ARQConstants
     /** URI scheme that triggers the loader to load a java class */
     public static final String javaClassURIScheme = "java:" ;
 
-    /** The ARQ function library URI space */
+    /**
+     * The CDT function URI space
+     * @deprecated Use {@link CDT#CDTFunctionLibraryURI}
+     */
+    @Deprecated(forRemoval = true)
     public static final String CDTFunctionLibraryURI = 
"http://w3id.org/awslabs/neptune/SPARQL-CDTs/"; ;
 
+
     /** The ARQ function library URI space */
     public static final String ARQFunctionLibraryURI = 
"http://jena.apache.org/ARQ/function#"; ;
 
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
index 52da5270c8..d4882f46a8 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
@@ -38,8 +38,9 @@ public class SystemARQ
 
     // NodeValues work without the context so some things only have global 
settings.
 
-    /** Control whether addition datatypes, over and above strict, minimal 
SPARQL compliance, are handled.
-     *  Examples include xsd:date and simple literal/xsd:string.
+    /**
+     * Control whether addition datatypes, over and above strict, minimal 
SPARQL compliance, are handled.
+     * Examples include xsd:date and simple literal/xsd:string.
      */
     public static boolean ValueExtensions       = true ;
 
@@ -52,11 +53,18 @@ public class SystemARQ
      */
     public static boolean StrictDateTimeFO      = false ;
 
-    /** Whether support for Roman numerals (datatype 
http://rome.example.org/Numeral).
-     *  Mainly a test of datatype extension.
+    /**
+     * Whether support for Roman numerals (datatype 
http://rome.example.org/Numeral).
+     * Mainly a test of datatype extension.
      */
     public static boolean EnableRomanNumerals   = true ;
 
+    /**
+     * Enable CDT support.
+     * <a href="https://awslabs.github.io/SPARQL-CDTs/spec/latest.html";>SPARQL 
CDTs: Representing and Querying Lists and Maps as RDF Literals</a>
+     */
+    public static boolean EnableCDTs   = true ;
+
     /**
      * Sync a Model if it provides the underlying graph provides sync . Do 
nothing
      * otherwise.
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
index 42c860b968..26fc926e66 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
@@ -96,10 +96,13 @@ public abstract class NodeValue extends ExprNode
 
     // Before constants
     public static DatatypeFactory xmlDatatypeFactory =  
DatatypeFactoryInst.newDatatypeFactory();
+
     private static int NODEVALUE_CACHE_SIZE = 10_000;
-    private static Set<RDFDatatype> noCache = 
Set.of(CompositeDatatypeList.datatype(), CompositeDatatypeMap.datatype());
     private static Cache<Node, NodeValue> nodeValueCache = 
CacheFactory.createCache(NODEVALUE_CACHE_SIZE);
 
+    // Datatypes not to cache
+    private static Set<RDFDatatype> noCache = 
Set.of(CompositeDatatypeList.datatype(), CompositeDatatypeMap.datatype());
+
     public static final NodeValue TRUE   = NodeValue.makeNode("true", 
XSDboolean);
     public static final NodeValue FALSE  = NodeValue.makeNode("false", 
XSDboolean);
 
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/ARQFunctions.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/ARQFunctions.java
index 9c76c03723..b63310c3ab 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/function/ARQFunctions.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/ARQFunctions.java
@@ -19,21 +19,18 @@
 package org.apache.jena.sparql.function;
 
 import org.apache.jena.sparql.ARQConstants;
-import org.apache.jena.sparql.function.library.cdt.CDTLiteralFunctions;
-import org.apache.jena.sparql.function.library.triple.TripleTermFunctions;
+import org.apache.jena.sparql.util.MappedLoader;
 
 /** Load ARQ functions ().
- * The one in package {@link org.apache.jena.sparql.function.library}
- * can be invoked by afn:name without registration because afn:-&gt;java: is 
built-in
- * in MappedLoader.
+ *
+ *  Any additional functions from afn: that need special loading.
+ *
+ * They can be invoked by afn:name without registration because
+ * the {@link MappedLoader} maps the names to a "java:" loadable name.
  *
  * @see ARQConstants#ARQFunctionLibraryURI
  * @see ARQConstants#ARQFunctionLibrary
  */
 public class ARQFunctions {
-
-    public static void load(FunctionRegistry reg) {
-        TripleTermFunctions.register(reg);
-        CDTLiteralFunctions.register(reg);
-    }
+    public static void load(FunctionRegistry reg) {}
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/FunctionRegistry.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/FunctionRegistry.java
index 65888b1865..f5087b3008 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/FunctionRegistry.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/FunctionRegistry.java
@@ -26,6 +26,7 @@ import java.util.Set;
 import org.apache.jena.atlas.logging.Log;
 import org.apache.jena.query.ARQ;
 import org.apache.jena.sparql.ARQConstants;
+import org.apache.jena.sparql.function.library.cdt.CDTLiteralFunctions;
 import org.apache.jena.sparql.util.Context;
 import org.apache.jena.sparql.util.MappedLoader;
 import org.apache.jena.sys.JenaSystem;
@@ -46,9 +47,16 @@ public class FunctionRegistry
     public static void init() {
         // Initialize if there is no registry already set
         FunctionRegistry reg = new FunctionRegistry();
-        ARQFunctions.load(reg);
+
         StandardFunctions.loadStdDefs(reg);
         StandardFunctions.loadOtherDefs(reg);
+
+        // "arq:" functions
+        ARQFunctions.load(reg);
+        // "cdt:" (Composite Datatypes) extension.
+        // The functions are always loaded.
+        CDTLiteralFunctions.register(reg);
+
         set(ARQ.getContext(), reg);
     }
 
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/cdt/CDTLiteralFunctions.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/cdt/CDTLiteralFunctions.java
index 7072839688..12b77df653 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/cdt/CDTLiteralFunctions.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/cdt/CDTLiteralFunctions.java
@@ -18,26 +18,26 @@
 
 package org.apache.jena.sparql.function.library.cdt;
 
-import org.apache.jena.sparql.ARQConstants;
+import org.apache.jena.cdt.CDT;
 import org.apache.jena.sparql.function.FunctionRegistry;
 
 public class CDTLiteralFunctions {
     public static void register( final FunctionRegistry functionRegistry ) {
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "concat",  
ConcatFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "contains", 
    ContainsFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + 
"containsKey",  ContainsKeyFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + 
"containsTerm", ContainsTermFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "get",     
GetFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "head",    
HeadFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "keys",    
KeysFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "List",    
ListFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "Map",     
MapFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "merge",   
MergeFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "put",     
PutFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "remove",  
RemoveFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "reverse", 
ReverseFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "size",    
SizeFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "subseq",  
SubSeqFct.class );
-        functionRegistry.put( ARQConstants.CDTFunctionLibraryURI + "tail",    
TailFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "concat",         
ConcatFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "contains",       
ContainsFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "containsKey",    
ContainsKeyFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "containsTerm",   
ContainsTermFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "get",            
GetFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "head",           
HeadFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "keys",           
KeysFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "List",           
ListFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "Map",            
MapFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "merge",          
MergeFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "put",            
PutFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "remove",         
RemoveFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "reverse",        
ReverseFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "size",           
SizeFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "subseq",         
SubSeqFct.class );
+        functionRegistry.put( CDT.CDTFunctionLibraryURI + "tail",           
TailFct.class );
     }
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/util/MappedLoader.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/util/MappedLoader.java
index 7be7db83f7..d5db2cbb99 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/MappedLoader.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/MappedLoader.java
@@ -32,8 +32,9 @@ public class MappedLoader {
     // java:com.hp.hpl.jena.sparql.pfunction.
 
     static Map<String, String> uriMap = new HashMap<>();
+    static { setup(); }
 
-    static {
+    private static void setup() {
         // ARQ library
         uriMap.put(ARQConstants.ARQFunctionLibraryURI, 
ARQConstants.ARQFunctionLibrary);
         uriMap.put(ARQConstants.ARQFunctionLibraryURI_Jena2, 
ARQConstants.ARQFunctionLibrary);
@@ -64,7 +65,7 @@ public class MappedLoader {
             String newURI = uri.replace("http://jena.hpl.hp.com/";, 
"http://jena.apache.org/";) ;
             Log.warnOnce(MappedLoader.class, "Loading function or property 
function with old style 'jena.hpl.hp.com' used - preferred style is to use 
'jena.apache.org': "+uri+ " => "+newURI, uri) ;
         }
-        
+
         Map.Entry<String, String> e = find(uri);
         if (e == null) {
             if (uri.startsWith(ARQConstants.javaClassURIScheme))
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/TestTripleTermFunctions.java
index 888a93a525..4d47b943b5 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/TestTripleTermFunctions.java
@@ -40,77 +40,41 @@ public class TestTripleTermFunctions {
 
     static { JenaSystem.init(); }
 
-    @Test public void tripleTermKW_Create1() {
+    @Test public void tripleTerm_Create1() {
         Node r = eval("triple(:s1, :p1, :o1)");
         assertNotNull(r);
     }
 
     @Test
-    public void tripleTermKW_Create2() {
+    public void tripleTerm_Bad1() {
         assertThrows(ExprEvalException.class, ()-> eval("triple(:s1, 'bc', 
:o1)") );
     }
 
     @Test
-    public void tripleTermKW_Access1() {
+    public void tripleTerm_Access1() {
         test("subject(triple(:s1, :p1, :o1))", ":s1");
     }
 
     @Test
-    public void tripleTermKW_Access2() {
+    public void tripleTerm_Access2() {
         test("predicate(triple(:s1, :p1, :o1))", ":p1");
     }
 
     @Test
-    public void tripleTermKW_Access3() {
+    public void tripleTerm_Access3() {
         test("object(triple(:s1, :p1, :o1))", ":o1");
     }
 
     @Test
-    public void tripleTermKW_Test1() {
+    public void tripleTerm_Test1() {
         test("isTriple(triple(:s1, :p1, :o1))", "true");
     }
 
     @Test
-    public void tripleTermKW_Test2() {
+    public void tripleTerm_Test2() {
         test("isTriple(:x)", "false");
     }
 
-    @Test public void tripleTermURI_Create1() {
-        Node r = eval("triple(:s1, :p1, :o1)");
-        assertNotNull(r);
-    }
-
-    @Test
-    public void tripleTermURI_Create2() {
-        assertThrows(ExprEvalException.class, ()-> eval("afn:triple(:s1, 'bc', 
:o1)") );
-    }
-
-    @Test
-    public void tripleTermURI_Access1() {
-        test("afn:subject(afn:triple(:s1, :p1, :o1))", ":s1");
-    }
-
-    @Test
-    public void tripleTermURI_Access2() {
-        test("afn:predicate(afn:triple(:s1, :p1, :o1))", ":p1");
-    }
-
-    @Test
-    public void tripleTermURI_Access3() {
-        test("afn:object(afn:triple(:s1, :p1, :o1))", ":o1");
-    }
-
-    @Test
-    public void tripleTermURI_Test1() {
-        test("afn:isTriple(afn:triple(:s1, :p1, :o1))", "true");
-    }
-
-    @Test
-    public void tripleTermURI_Test2() {
-        test("afn:isTriple(:x)", "false");
-    }
-
-
     private static Node eval(String string) {
         Expr expr = ExprUtils.parse(string, pmap);
         NodeValue nv = expr.eval(null, new FunctionEnvBase());

Reply via email to