@Override protected void output(IndentedWriter iOut, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI, Context context) { StreamRDF dest = new WriterStreamRDFFlat(iOut) ; dest.start() ; dest.base(baseURI) ; StreamOps.sendDatasetToStream(datasetGraph, dest, prefixMap) ; dest.finish() ; } }
private List<Triple> writeTriples(StreamRDF out, int size) { List<Triple> results = new ArrayList<>(); out.start(); for (int i = 1; i <= size; i++) { Triple t = new Triple(NodeFactory.createBlankNode(), NodeFactory.createURI("http://predicate"), NodeFactoryExtra.intToNode(i)); out.triple(t); results.add(t); } out.finish(); return results; }
public void writeTurtle(String baseIRI, PrefixMapping prefixes, boolean writeBase) { // Auto-register RDF prefix so that rdf:type is displayed well // All other prefixes come from the query and should be as author intended prefixes = ensureRDFPrefix(prefixes); if (writeBase) { // Jena's streaming Turtle writers don't output base even if it is provided, // so we write it directly. IndentedWriter w = new IndentedWriter(out); RiotLib.writeBase(w, baseIRI); w.flush(); } StreamRDF writer = new WriterStreamRDFBlocks(out); if (dedupWindowSize > 0) { writer = new StreamRDFDedup(writer, dedupWindowSize); } writer.start(); writer.base(baseIRI); for (Entry<String, String> e : prefixes.getNsPrefixMap().entrySet()) { writer.prefix(e.getKey(), e.getValue()); } StreamOps.sendTriplesToStream(triples, writer); writer.finish(); }
private List<Quad> writeQuads(StreamRDF out, int size) { List<Quad> results = new ArrayList<>(); out.start(); for (int i = 1; i <= size; i++) { Quad q = new Quad(NodeFactory.createURI("http://graph"), NodeFactory.createBlankNode(), NodeFactory.createURI("http://predicate"), NodeFactoryExtra.intToNode(i)); out.quad(q); results.add(q); } out.finish(); return results; }
private static void serializeBlockStreamed(final RdfStream rdfStream, final OutputStream output, final RDFFormat format, final Map<String, String> nsPrefixes) { final Set<String> namespacesPresent = new HashSet<>(); final StreamRDF stream = new SynchonizedStreamRDFWrapper(getWriterStream(output, format)); stream.start(); // Must read the rdf stream before writing out ns prefixes, otherwise the prefixes come after the triples final List<Triple> tripleList = rdfStream.peek(t -> { // Collect the namespaces present in the RDF stream, using the same // criteria for where to look that jena's model.listNameSpaces() does namespacesPresent.add(t.getPredicate().getNameSpace()); if (RDF_TYPE.equals(t.getPredicate().getURI()) && t.getObject().isURI()) { namespacesPresent.add(t.getObject().getNameSpace()); } }).collect(Collectors.toList()); nsPrefixes.forEach((prefix, uri) -> { // Only add namespace prefixes if the namespace is present in the rdf stream if (namespacesPresent.contains(uri)) { stream.prefix(prefix, uri); } }); tripleList.forEach(stream::triple); stream.finish(); }
@Override public void finish() { other.finish() ; } }
@Override public void startPrefixMapping(String prefix, String uri) { output.prefix(prefix, uri) ; }