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 1c242abeb0 Align RDF 1.2 naming
1c242abeb0 is described below

commit 1c242abeb060e0621d061d6add24b7b7260c97c7
Author: Andy Seaborne <[email protected]>
AuthorDate: Sun Oct 26 09:51:20 2025 +0000

    Align RDF 1.2 naming
---
 .../org/apache/jena/riot/out/NodeFormatter.java    | 14 ++++++---
 .../apache/jena/riot/out/NodeFormatterBase.java    | 35 ++++++++++++----------
 .../apache/jena/rdfpatch/AbstractTestPatchIO.java  | 11 +++++++
 .../org/apache/jena/rdfpatch/TestPatchIO_Text.java |  5 ++++
 4 files changed, 46 insertions(+), 19 deletions(-)

diff --git a/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatter.java 
b/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatter.java
index 71d49b10f9..f6496e500a 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatter.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatter.java
@@ -21,23 +21,26 @@ package org.apache.jena.riot.out;
 import org.apache.jena.atlas.io.AWriter;
 import org.apache.jena.graph.Node;
 
-/** Processor for output of RDF terms. */
+/**
+ * Processor for output of RDF terms. The operation {@link #format(AWriter, 
Node)}
+ * formats a node and output on the {@link AWriter}.
+ * <p>
+ * All other operations assume their {@link Node} argument is the correct kind 
of
+ * RDFterm for the operation.
+ */
 public interface NodeFormatter
 {
     public void format(AWriter w, Node n);
 
-    /** Node is guaranteed to be a URI node */
     public void formatURI(AWriter w, Node n);
     public void formatURI(AWriter w, String uriStr);
 
     public void formatVar(AWriter w, Node n);
     public void formatVar(AWriter w, String name);
 
-    /** Node is guaranteed to be a blank node */
     public void formatBNode(AWriter w, Node n);
     public void formatBNode(AWriter w, String label);
 
-    /** Node is guaranteed to be a literal */
     public void formatLiteral(AWriter w, Node n);
 
     /** Plain string / xsd:string (RDF 1.1) */
@@ -54,4 +57,7 @@ public interface NodeFormatter
      * language tag or and base direction.
      */
     public void formatLitDT(AWriter w, String lex, String datatypeURI);
+
+    public void formatTripleTerm(AWriter w, Node n);
+    public void formatTripleTerm(AWriter w, Node subject, Node proedicate, 
Node object);
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterBase.java 
b/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterBase.java
index 28885806ab..72fa18f48b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterBase.java
@@ -22,7 +22,6 @@ import org.apache.jena.atlas.io.AWriter;
 import org.apache.jena.datatypes.RDFDatatype;
 import org.apache.jena.datatypes.xsd.XSDDatatype;
 import org.apache.jena.graph.Node;
-import org.apache.jena.graph.Node_Triple;
 import org.apache.jena.graph.TextDirection;
 import org.apache.jena.graph.Triple;
 import org.apache.jena.sparql.ARQInternalErrorException;
@@ -45,25 +44,14 @@ public abstract class NodeFormatterBase implements 
NodeFormatter
             formatVar(w, n);
         else if ( Node.ANY.equals(n) )
             w.print("ANY");
-        else if ( n instanceof Node_Triple )
-            formatNodeTriple(w, n);
-//        else if ( n instanceof Node_Graph )
+        else if ( n.isTripleTerm() )
+            formatTripleTerm(w, n);
+//        else if ( n.isNodeGraph() )
 //            formatNodeGraph(w, (Node_Graph)n);
         else
             throw new ARQInternalErrorException("Unknown node type: "+n);
     }
 
-    protected void formatNodeTriple(AWriter w, Node n) {
-        Triple t = n.getTriple();
-        w.print("<<( ");
-        format(w, t.getSubject());
-        w.print(" ");
-        format(w, t.getPredicate());
-        w.print(" ");
-        format(w, t.getObject());
-        w.print(" )>>");
-    }
-
     @Override
     public void formatURI(AWriter w, Node n)         { formatURI(w, 
n.getURI()); }
 
@@ -93,6 +81,23 @@ public abstract class NodeFormatterBase implements 
NodeFormatter
         }
     }
 
+    @Override
+    public void formatTripleTerm(AWriter w, Node n) {
+        Triple t = n.getTriple();
+        formatTripleTerm(w, t.getSubject(), t.getPredicate(), t.getObject());
+    }
+
+    @Override
+    public void formatTripleTerm(AWriter w, Node subject, Node predicate, Node 
object) {
+        w.print("<<( ");
+        format(w, subject);
+        w.print(" ");
+        format(w, predicate);
+        w.print(" ");
+        format(w, object);
+        w.print(" )>>");
+    }
+
     @Override
     public void formatVar(AWriter w, Node n)         { formatVar(w, 
n.getName()); }
 }
diff --git 
a/jena-rdfpatch/src/test/java/org/apache/jena/rdfpatch/AbstractTestPatchIO.java 
b/jena-rdfpatch/src/test/java/org/apache/jena/rdfpatch/AbstractTestPatchIO.java
index 7492033f40..5d84f54015 100644
--- 
a/jena-rdfpatch/src/test/java/org/apache/jena/rdfpatch/AbstractTestPatchIO.java
+++ 
b/jena-rdfpatch/src/test/java/org/apache/jena/rdfpatch/AbstractTestPatchIO.java
@@ -42,8 +42,10 @@ public abstract class AbstractTestPatchIO {
     private static Node s1 = SSE.parseNode(":s1");
     private static Node s2 = SSE.parseNode("_:s2");
     private static Node s3 = SSE.parseNode("<<(_:b :y 123)>>");
+
     private static Node p1 = SSE.parseNode("<http://example/p1>");
     private static Node p2 = SSE.parseNode(":p2");
+
     private static Node o1 = SSE.parseNode("<http://example/o1>");
     private static Node o2 = SSE.parseNode("123");
     private static Node o3 = SSE.parseNode("<<(  _:b :prop <<( _:b :q _:b )>> 
)>>");
@@ -127,4 +129,13 @@ public abstract class AbstractTestPatchIO {
             changes.txnCommit();
         });
     }
+
+    @Test public void write_read_04() {
+        write_read(changes->{
+            changes.txnBegin();
+            changes.add(g2, s3, p2, o1);
+            changes.add(g2, s3, p2, o3);
+            changes.txnCommit();
+        });
+    }
 }
diff --git 
a/jena-rdfpatch/src/test/java/org/apache/jena/rdfpatch/TestPatchIO_Text.java 
b/jena-rdfpatch/src/test/java/org/apache/jena/rdfpatch/TestPatchIO_Text.java
index a47a3f1571..d860ba726c 100644
--- a/jena-rdfpatch/src/test/java/org/apache/jena/rdfpatch/TestPatchIO_Text.java
+++ b/jena-rdfpatch/src/test/java/org/apache/jena/rdfpatch/TestPatchIO_Text.java
@@ -59,6 +59,11 @@ public class TestPatchIO_Text extends AbstractTestPatchIO {
         return patch;
     }
 
+    @Test public void read_tripleTerm_01() {
+        String str = "A <http://example/s1> <http://example/p1> <<( 
<http://example/s> <http://example/p> <http://example/o> )>> .";
+        parseSyntax(str);
+    }
+
     @Test public void read_warning_01() {
         String str = "A <http://example/s1> <http://example/p1> 'abc\uFFFDdef' 
<http://example/g1> .";
         parseSyntax(str);

Reply via email to