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);