You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/08/29 21:30:53 UTC
svn commit: r1162952 - in /incubator/jena/Jena2/ARQ/trunk: src-dev/dev/
src/org/openjena/atlas/io/ src/org/openjena/riot/out/
src/org/openjena/riot/system/
Author: andy
Date: Mon Aug 29 19:30:53 2011
New Revision: 1162952
URL: http://svn.apache.org/viewvc?rev=1162952&view=rev
Log:
Node formatting output - N-Triples writer (WIP)
Modified:
incubator/jena/Jena2/ARQ/trunk/src-dev/dev/DevARQ.java
incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/io/BufferingWriter.java
incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/NTriplesWriter.java
incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkQuadOutput.java
incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkTripleOutput.java
incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/SyntaxLabels.java
Modified: incubator/jena/Jena2/ARQ/trunk/src-dev/dev/DevARQ.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-dev/dev/DevARQ.java?rev=1162952&r1=1162951&r2=1162952&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-dev/dev/DevARQ.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-dev/dev/DevARQ.java Mon Aug 29 19:30:53 2011
@@ -7,6 +7,8 @@ public class DevARQ
// FILTER(?x=<x> && ...) does not push down on the ?x=<x>
// Do FILTER placement before filter equality -- but dnager of breaking up BGPs.
+ // riot.out.SinkTripleOutput and BufferingWriter : respect encoder
+
// Automatically create graphs for in-memorry update.
// DatasetFactory.create() ; returns an auto-add dataset.
// and UpdateAction.execute (request, model) has a fixed datset of one graph.
Modified: incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/io/BufferingWriter.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/io/BufferingWriter.java?rev=1162952&r1=1162951&r2=1162952&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/io/BufferingWriter.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/org/openjena/atlas/io/BufferingWriter.java Mon Aug 29 19:30:53 2011
@@ -77,7 +77,7 @@ public final class BufferingWriter exten
return new BufferingWriter(new SinkChannel(out), size, size/2) ;
}
- /** Writer(chars) over OutputStream (bytes) -- heavily buffered -- fluishing may be needed */
+ /** Writer(chars) over OutputStream (bytes) -- heavily buffered -- flushing may be needed */
public static BufferingWriter create(OutputStream out)
{
return new BufferingWriter(new SinkOutputStream(out), SIZE, BLOB_SIZE) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/NTriplesWriter.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/NTriplesWriter.java?rev=1162952&r1=1162951&r2=1162952&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/NTriplesWriter.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/NTriplesWriter.java Mon Aug 29 19:30:53 2011
@@ -24,7 +24,7 @@ public class NTriplesWriter
public static void write(OutputStream out, Graph graph)
{
Prologue prologue = Prologue.create(null, null) ; // (null, graph.getPrefixMapping()) ;
- // Write prologue.
+ //NodeToLabel.createBNodeByLabelEncoded() ;
Sink<Triple> sink = new SinkTripleOutput(out, prologue, SyntaxLabels.createNodeToLabel()) ;
Iterator<Triple> iter = graph.find(Node.ANY, Node.ANY, Node.ANY) ;
Iter.sendToSink(iter, sink) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkQuadOutput.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkQuadOutput.java?rev=1162952&r1=1162951&r2=1162952&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkQuadOutput.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkQuadOutput.java Mon Aug 29 19:30:53 2011
@@ -9,7 +9,6 @@
package org.openjena.riot.out;
import java.io.OutputStream ;
-import java.nio.ByteBuffer ;
import java.nio.charset.CharsetEncoder ;
import org.openjena.atlas.io.BufferingWriter ;
@@ -28,6 +27,7 @@ public class SinkQuadOutput implements S
private Prologue prologue = null ;
private BufferingWriter out ;
private NodeToLabel labelPolicy = null ;
+ private NodeFormatter nodeFmt = new NodeFormatterNT() ;
public SinkQuadOutput(OutputStream outs)
{
@@ -37,8 +37,7 @@ public class SinkQuadOutput implements S
public SinkQuadOutput(OutputStream outs, Prologue prologue, NodeToLabel labels)
{
encoder = Chars.charsetUTF8.newEncoder() ;
- Sink<ByteBuffer> dest = new BufferingWriter.SinkOutputStream(outs) ;
- out = new BufferingWriter(dest) ;
+ out = BufferingWriter.create(outs) ;
setPrologue(prologue) ;
setLabelPolicy(labels) ;
}
@@ -60,11 +59,6 @@ public class SinkQuadOutput implements S
out.flush() ;
}
- private Node lastS = null ;
- private Node lastP = null ;
- private Node lastO = null ;
- private Node lastG = null ;
-
public void send(Quad quad)
{
Node s = quad.getSubject() ;
@@ -72,70 +66,19 @@ public class SinkQuadOutput implements S
Node o = quad.getObject() ;
Node g = quad.getGraph() ;
-// if ( ! ( s.isURI() || s.isBlank() ) )
-// throw new TurtleParseException("["+line+", "+col+"] : Error: Subject is not a URI or blank node") ;
-// if ( ! p.isURI() )
-// throw new TurtleParseException("["+line+", "+col+"] : Error: Predicate is not a URI") ;
-// if ( ! ( o.isURI() || o.isBlank() || o.isLiteral() ) )
-// throw new TurtleParseException("["+line+", "+col+"] : Error: Object is not a URI, blank node or literal") ;
-// if ( ! g.isURI() )
-// throw new TurtleParseException("["+line+", "+col+"] : Error: Graph is not a URI") ;
-
- if ( false )
- {
- // The compression of temrs
- if ( s.equals(lastS) )
- out.output("*") ;
- else
- OutputLangUtils.output(out, s, prologue, labelPolicy) ;
-
- out.output(" ") ;
-
- if ( p.equals(lastP) )
- out.output("*") ;
- else
- OutputLangUtils.output(out, p, prologue, labelPolicy) ;
-
- out.output(" ") ;
-
- if ( o.equals(lastO) )
- out.output("*") ;
- else
- OutputLangUtils.output(out, o, prologue, labelPolicy) ;
-
- if ( outputGraphSlot(g) )
- {
- if ( g.equals(lastG) )
- out.output("*") ;
- else
- OutputLangUtils.output(out, g, prologue, labelPolicy) ;
- }
-
- out.output(" .") ;
- out.output("\n") ;
-
- lastS = s ;
- lastP = p ;
- lastO = o ;
- lastG = g ;
- return ;
- }
-
- // N-triples.
- OutputLangUtils.output(out, s, prologue, labelPolicy) ;
+ nodeFmt.format(out, s) ;
out.output(" ") ;
- OutputLangUtils.output(out, p, prologue, labelPolicy) ;
+ nodeFmt.format(out, p) ;
out.output(" ") ;
- OutputLangUtils.output(out, o, prologue, labelPolicy) ;
-
+ nodeFmt.format(out, o) ;
+
if ( outputGraphSlot(g) )
{
out.output(" ") ;
- OutputLangUtils.output(out, g, prologue, labelPolicy) ;
+ nodeFmt.format(out, g) ;
}
- out.output(" .") ;
- out.output("\n") ;
+ out.output(" .\n") ;
}
private static boolean outputGraphSlot(Node g)
@@ -148,6 +91,7 @@ public class SinkQuadOutput implements S
flush();
}
}
+
/*
* (c) Copyright 2009 Hewlett-Packard Development Company, LP
* (c) Copyright 2010 Talis Systems Ltd.
Modified: incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkTripleOutput.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkTripleOutput.java?rev=1162952&r1=1162951&r2=1162952&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkTripleOutput.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/out/SinkTripleOutput.java Mon Aug 29 19:30:53 2011
@@ -8,7 +8,6 @@
package org.openjena.riot.out;
import java.io.OutputStream ;
-import java.nio.ByteBuffer ;
import java.nio.charset.CharsetEncoder ;
import org.openjena.atlas.io.BufferingWriter ;
@@ -23,10 +22,13 @@ import com.hp.hpl.jena.graph.Triple ;
/** A class that print triples, N-triples style */
public class SinkTripleOutput implements Sink<Triple>
{
+ // TODO ASCII version
private CharsetEncoder encoder ;
private Prologue prologue = null ;
private BufferingWriter out ;
private NodeToLabel labelPolicy = null ;
+
+ private NodeFormatter nodeFmt = new NodeFormatterNT() ;
public SinkTripleOutput(OutputStream outs)
{
@@ -37,8 +39,7 @@ public class SinkTripleOutput implements
{
//encoder = Chars.charsetUTF8.newEncoder() ;
encoder = Chars.charsetASCII.newEncoder() ;
- Sink<ByteBuffer> dest = new BufferingWriter.SinkOutputStream(outs) ;
- out = new BufferingWriter(dest) ;
+ out = BufferingWriter.create(outs) ;
setPrologue(prologue) ;
setLabelPolicy(labels) ;
}
@@ -64,17 +65,13 @@ public class SinkTripleOutput implements
Node s = triple.getSubject() ;
Node p = triple.getPredicate() ;
Node o = triple.getObject() ;
-
- // See SinkQuadOutput for "*" (for same as row before).
- // N-triples.
- OutputLangUtils.output(out, s, prologue, labelPolicy) ;
+
+ nodeFmt.format(out, s) ;
out.output(" ") ;
- OutputLangUtils.output(out, p, prologue, labelPolicy) ;
+ nodeFmt.format(out, p) ;
out.output(" ") ;
- OutputLangUtils.output(out, o, prologue, labelPolicy) ;
- out.output(" .") ;
- out.output("\n") ;
- out.flush();
+ nodeFmt.format(out, o) ;
+ out.output(" .\n") ;
}
public void close()
Modified: incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/SyntaxLabels.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/SyntaxLabels.java?rev=1162952&r1=1162951&r2=1162952&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/SyntaxLabels.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/org/openjena/riot/system/SyntaxLabels.java Mon Aug 29 19:30:53 2011
@@ -13,7 +13,7 @@ import org.openjena.riot.out.NodeToLabel
public class SyntaxLabels
{
/** Default setup - scope by document, relabel BNodes ids to short forms */
- static public NodeToLabel createNodeToLabel() { return NodeToLabel.createScopeByDocument() ; }
+ static public NodeToLabel createNodeToLabel() { return NodeToLabel.createScopeByDocument() ; }
static public LabelToNode createLabelToNode() { return LabelToNode.createScopeByDocument() ; }