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 2013/03/02 18:39:08 UTC

svn commit: r1451911 - in /jena/Experimental/riot-output/src/main/java: dev/ riot/ riot/adpaters/ riot/system/ riot/writer/

Author: andy
Date: Sat Mar  2 17:39:07 2013
New Revision: 1451911

URL: http://svn.apache.org/r1451911
Log:
Simplify the interface for plugging in writers (new and provided).

Added:
    jena/Experimental/riot-output/src/main/java/riot/WriterRIOT.java
Modified:
    jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java
    jena/Experimental/riot-output/src/main/java/dev/MainWriter.java
    jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java
    jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java
    jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java
    jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java
    jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java
    jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java
    jena/Experimental/riot-output/src/main/java/riot/adpaters/AdapterRDFWriter.java
    jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java
    jena/Experimental/riot-output/src/main/java/riot/system/RiotWriterLib.java
    jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java
    jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java
    jena/Experimental/riot-output/src/main/java/riot/writer/NullWriter.java
    jena/Experimental/riot-output/src/main/java/riot/writer/RDFJSONWriter.java
    jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBase.java
    jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java
    jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBase.java
    jena/Experimental/riot-output/src/main/java/riot/writer/WriterDatasetRIOTBase.java
    jena/Experimental/riot-output/src/main/java/riot/writer/WriterGraphRIOTBase.java
    jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java

Modified: jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java Sat Mar  2 17:39:07 2013
@@ -32,6 +32,7 @@ import riot.writer.WriterGraphRIOTBase ;
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.rdf.model.Model ;
 import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 /** Example of registering a new writer with RIOT */
 public class ExRIOT_out3
@@ -49,7 +50,9 @@ public class ExRIOT_out3
         Lang lang = LangBuilder.create("SSE", "text/x-sse").addFileExtensions("rsse").build() ;
         RDFLanguages.register(lang) ;
 
-        // Create format and register.
+        // Create format and register the association of language and default format.
+        // We are creating only one format here but in geenral theer can be variants
+        // (e.g. TURTLE - pretty printed or streamed) 
         RDFFormat format = new RDFFormat(lang) ;
         RDFWriterRegistry.register(lang, format)  ;
         
@@ -86,7 +89,7 @@ public class ExRIOT_out3
     {
         // Ignore externally provided prefix map and baseURI
         @Override
-        public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI)
+        public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
         {
             SSE.write(out, graph) ;
         }
@@ -95,13 +98,12 @@ public class ExRIOT_out3
         public Lang getLang()   { return  RDFLanguages.contentTypeToLang("text/x-sse") ; }
 
         @Override
-        public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
+        public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
         {
             // Writers are discouraged : just hope the charset is UTF-8.
             IndentedWriter x = RiotWriterLib.create(out) ;
             SSE.write(x, graph) ;
         }
-
     }
 
     // Model.write adapter - must be public.

Modified: jena/Experimental/riot-output/src/main/java/dev/MainWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/MainWriter.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/MainWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/MainWriter.java Sat Mar  2 17:39:07 2013
@@ -20,6 +20,7 @@ package dev;
 
 import java.io.ByteArrayInputStream ;
 import java.io.ByteArrayOutputStream ;
+import java.io.InputStream ;
 import java.util.Iterator ;
 import java.util.Map.Entry ;
 
@@ -27,6 +28,7 @@ import org.apache.jena.atlas.lib.StrUtil
 import org.apache.jena.iri.IRI ;
 import org.apache.jena.riot.Lang ;
 import org.apache.jena.riot.RDFDataMgr ;
+import org.apache.jena.riot.RiotReader ;
 import org.apache.jena.riot.system.PrefixMap ;
 import org.apache.jena.riot.system.PrefixMapFactory ;
 import org.apache.jena.riot.system.StreamRDF ;
@@ -60,6 +62,9 @@ public class MainWriter
         //String fn = "testing/RIOT/Writer/writer-rt-00.ttl" ;
         
         Model m = RDFDataMgr.loadModel(fn) ;
+        
+        RiotReader.createParserNTriples((InputStream)null, null) ;
+        
         m.write(System.out, "TTL") ;
         System.exit(0) ;
         
@@ -71,7 +76,7 @@ public class MainWriter
         // DatasetWriter? WriterDataset  WriterDatasetGraph
         
         WriterGraphRIOT w = RDFWriterMgr.createGraphWriter(RDFFormat.TRIG) ;  
-        w.write(System.out, m.getGraph()) ;
+        w.write(System.out, m.getGraph(), null, null, null) ;
         //w.getContext().set(..)
         //w.set() ;
         RDFWriter w0 = m.getWriter("TTL") ;

Modified: jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java Sat Mar  2 17:39:07 2013
@@ -22,39 +22,29 @@ package dev;
 
 public class PROJECT_RiotWriter
 {
-    // ModelWriter? WriterModel WriterGraph
-    // DatasetWriter? WriterDataset  WriterDatasetGraph
-    
-    //Documentation: examples.
-    // complete javadoc RDFWriterRegistry
+    // ready to migrate.
+    // Migration
+    //  - RIOT.init to call RDFWriterRegistry.init()
+    //  - RDFWriter -> RDFDataMgr
+    //   riot --out FMT (later?)
+    //  - Remove some RIOT.init calls.
+    //  - IO_Jena2 to JenaReadersWriters
+    //  - RiotWriteLib to RiotLib
+    //  - Writer names in FusekiLib
+    
+    // RiotWriter
+    //   Iterator to triples/quads into RDFWriterMgr.
+    // Stream writing generally
+    //   write() -> StreamRDF -- various forms
 
-    // **** RIOT/ARQ
-    // Move examples - need to adjust the website as well. 
-    // RDFDataMgr : only works on builtins for java.io.Readers. 
-    // Check ExRIOT_5
-    //   Does it need the example of explicit name registration?
-    
-    // Check ExRIOT_out3
+    // Idea:
+    // WriterRIOT - outward facing view ?? needed?
+    // WriterGraphRIOT, WriterDatasetGrap - inward facing view
+    // Not for now.
     
     // **** RIOT/ARQ
+    // RDFDataMgr : only works on builtins for java.io.Readers. 
     
-    // Test all Jena model.write paths.
-    // ideal Jena writer pattern (c.f. Jena 
-    // Base tests.
-    
-    // ready to migrate.
-
     // ** Prefixes for DatasetGraphs
     // per graph, per dataset
-    
-    // RDFDataMgr.write(filename)
-    
-    // Writer names in FusekiLib
-    
-    // ** Migration
-    // riot --out FMT (later?)
-    // RIOT.init to call RDFWriterRegistry.init()
-    // Remove some RIOT.init calls.
-    // RDFWriter -> RDFDataMgr
-    // IO_Jena2 to JenaReadersWriters
 }

Modified: jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java Sat Mar  2 17:39:07 2013
@@ -25,6 +25,7 @@ import java.io.Writer ;
 
 import org.apache.jena.riot.Lang ;
 import org.apache.jena.riot.RiotException ;
+import riot.system.RiotWriterLib ;
 
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.query.Dataset ;
@@ -306,25 +307,25 @@ public class RDFWriterMgr
     private static void write$(OutputStream out, Graph graph, RDFFormat serialization)
     {
         WriterGraphRIOT w = createGraphWriter$(serialization) ;
-        w.write(out, graph) ;
+        w.write(out, graph, RiotWriterLib.prefixMap(graph), null, null) ;
     }
 
     private static void write$(Writer out, Graph graph, RDFFormat serialization)
     {
         WriterGraphRIOT w = createGraphWriter$(serialization) ;
-        w.write(out, graph) ;
+        w.write(out, graph, RiotWriterLib.prefixMap(graph), null, null) ;
     }
 
     private static void write$(OutputStream out, DatasetGraph dataset, RDFFormat serialization)
     {
         WriterDatasetRIOT w = createDatasetWriter$(serialization) ;
-        w.write(out, dataset) ;
+        w.write(out, dataset, RiotWriterLib.prefixMap(dataset), null, null) ;
     }
 
     private static void write$(Writer out, DatasetGraph dataset, RDFFormat serialization)
     {
         WriterDatasetRIOT w = createDatasetWriter$(serialization) ;
-        w.write(out, dataset) ;
+        w.write(out, dataset, RiotWriterLib.prefixMap(dataset), null, null) ;
     }
 }
 

Modified: jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java Sat Mar  2 17:39:07 2013
@@ -129,44 +129,45 @@ public class RDFWriterRegistry
          register(RDFFormat.RDFNULL,        wdsfactory) ;
      }
     
-    public static void register(RDFFormat serialization, WriterGraphRIOTFactory wfactory)
+    /** Register the serialization for graphs and it's associated factory
+     * @param serialization         RDFFormat for the output format.
+     * @param graphWriterFactory    Source of writer engines
+     */
+    public static void register(RDFFormat serialization, WriterGraphRIOTFactory graphWriterFactory)
+    {
+        registryGraph.put(serialization, graphWriterFactory) ;
+    }
+
+    /** Register the serialization for datasets and it's associated factory
+     * @param serialization         RDFFormat for the output format.
+     * @param datasetWriterFactory    Source of writer engines
+     */
+    public static void register(RDFFormat serialization, WriterDatasetRIOTFactory datasetWriterFactory)
     {
-        registryGraph.put(serialization, wfactory) ;
+        registryDataset.put(serialization, datasetWriterFactory) ;
     }
 
-    public static void register(RDFFormat serialization, WriterDatasetRIOTFactory wfactory)
-    {
-        registryDataset.put(serialization, wfactory) ;
-    }
-
-    public static void register(Lang lang, WriterGraphRIOTFactory wfactory)
-    {
-        
-        RDFFormat serialization = defaultSerialization(lang) ;
-        if ( serialization == null )
-            throw new RiotException("No default serialization for language "+lang) ;
-        register(serialization, wfactory) ;
-    }
-
-    public static void register(Lang lang, WriterDatasetRIOTFactory wfactory)
-    {
-        RDFFormat serialization = defaultSerialization(lang) ;
-        if ( serialization == null )
-            throw new RiotException("No default serialization for language "+lang) ;
-        register(serialization, wfactory) ;
-    }
-    
     /** Register an RDFFormat */
     private static void register(RDFFormat serialization)
     { }
     
-    /** Register the default serialization for the language */
-    public static void register(Lang lang, RDFFormat serialization)
+    /** Register the default serialization for the language
+     * @param lang      Languages
+     * @param format    The serialization forma to use when the language is used for writing.
+     */
+    public static void register(Lang lang, RDFFormat format)
     {
-        register(serialization) ;
-        langToFormat.put(lang, serialization) ;
+        register(format) ;
+        langToFormat.put(lang, format) ;
+    }
+    
+    /** Return the format registered as the default for the language */ 
+    public static RDFFormat defaultSerialization(Lang lang)
+    {
+        return langToFormat.get(lang) ;
     }
 
+    /** Does the language have a registerdd output format? */
     public static boolean contains(Lang lang)
     { 
         if ( ! langToFormat.containsKey(lang) ) return false ;
@@ -175,20 +176,11 @@ public class RDFWriterRegistry
         return contains(fmt) ;
     }
 
-    /** Is the RDFFormat rgistered for use? */ 
+    /** Is the RDFFormat registered for use? */ 
     public static boolean contains(RDFFormat format)
     { return langToFormat.containsKey(format.getLang()) && (registryGraph.containsKey(format) || registryDataset.containsKey(format)); }
 
-//    /** return the RDFFormat for the existing Jena writer name, or null */ 
-//    public static RDFFormat getFormatForJenaWriter(String jenaName) { return mapJenaNameToFormat.get(jenaName) ; }
-//    
-//    /** Register an RDFFormat for a Jena writer name */ 
-//    private static void setFormatForJenaWriter(String jenaName, RDFFormat format) { mapJenaNameToFormat.put(jenaName, format) ; }
-//
-//    /** Return a collection of jena writer names */ 
-//    public static Collection<String> getJenaWriterNames() { return mapJenaNameToFormat.keySet() ; }
-
-    // Map Lang to default output format.
+    /** Get the graph writer factory asscoiated with the language */
     public static WriterGraphRIOTFactory getWriterGraphFactory(Lang lang)
     {
         RDFFormat serialization = defaultSerialization(lang) ;
@@ -197,16 +189,13 @@ public class RDFWriterRegistry
         return getWriterGraphFactory(serialization) ;
     }
 
-    public static WriterGraphRIOTFactory getWriterGraphFactory(Lang lang, RDFFormatVariant variant)
-    {
-        return getWriterGraphFactory(new RDFFormat(lang, variant)) ;
-    }
-
+    /** Get the graph writer factory asscoiated with the output format */
     public static WriterGraphRIOTFactory getWriterGraphFactory(RDFFormat serialization)
     {
         return registryGraph.get(serialization) ;
     }
     
+    /** Get the dataset writer factory asscoiated with the language */
     public static WriterDatasetRIOTFactory getWriterDatasetFactory(Lang lang)
     {
         RDFFormat serialization = defaultSerialization(lang) ;
@@ -215,22 +204,12 @@ public class RDFWriterRegistry
         return getWriterDatasetFactory(serialization) ;  
     }
 
-    public static WriterDatasetRIOTFactory getWriterDatasetFactory(Lang lang, RDFFormatVariant variant)
-    {
-        return getWriterDatasetFactory(new RDFFormat(lang, variant)) ;
-    }
-    
+    /** Get the dataset writer factory asscoiated with the output format */
     public static WriterDatasetRIOTFactory getWriterDatasetFactory(RDFFormat serialization)
     {
         if ( serialization == null )
             return null ; 
         return registryDataset.get(serialization) ;
     }
-    
-    public static RDFFormat defaultSerialization(Lang lang)
-    {
-        return langToFormat.get(lang) ;
-    }
-   
 }
 

Modified: jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java Sat Mar  2 17:39:07 2013
@@ -19,145 +19,182 @@
 package riot;
 
 import java.io.OutputStream ;
+import java.util.Iterator ;
 
+import org.apache.jena.riot.Lang ;
 import riot.writer.* ;
 
 import com.hp.hpl.jena.graph.Graph ;
-import com.hp.hpl.jena.query.Dataset ;
-import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.graph.Triple ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.Quad ;
 
 /** Direct call to create writers for specific formats.
- * The normal way to write is {@code RDFWriterMgr.write(...)} 
+ *  The normal way to write is {@linkplain RDFWriterMgr} 
  */
 public class RiotWriter
 {
-    /** Write as Turtle
-     * @param out   OutputStream
-     * @param model Model to write 
-     */
-    public static void writeTurtle(OutputStream out, Model model)
-    { writeTurtle(out, model.getGraph()) ; }
-    
-    /** Write as Turtle
-     * @param out   OutputStream
-     * @param graph Graph to write 
-     */
-    public static void writeTurtle(OutputStream out, Graph graph)
-    { createTurtle().write(out, graph) ; }
-
-    /** Write as Turtle, using a streaming writer
-     * @param out   OutputStream
-     * @param model Model to write 
-     */
-    public static void writeTurtleStreaming(OutputStream out,  Model model)
-    { writeTurtleStreaming(out, model.getGraph()) ; }
-    
-    /** Write as Turtle, using a streaming writer
-     * @param out   OutputStream
-     * @param graph Graph to write 
-     */
-    public static void writeTurtleStreaming(OutputStream out, Graph graph)
-    { createTurtleStreaming().write(out, graph) ; }
-
-    /** Write a model as NTriples
-     * @param out       OutputStream
-     * @param model     Model to write 
-     */
-    public static void writeNTriples(OutputStream out, Model model)
-    { writeNTriples(out, model.getGraph()) ; }
-    
-    /** Write a graph as NTriples
-     * @param out       OutputStream
-     * @param graph     Graph to write 
-     */
-    public static void writeNTriples(OutputStream out, Graph graph)
-    { createNTriples().write(out, graph) ; }
-
-    /** Write a model as RDF/XML
-     * @param out       OutputStream
-     * @param model     Model to write 
-     */
-    public static void writeRDFXML(OutputStream out, Model model)
-    { writeRDFXML(out, model.getGraph()) ; }
-    
-    /** Write a graph as RDF/XML
-     * @param out       OutputStream
-     * @param graph     Graph to write 
-     */
-    public static void writeRDFXML(OutputStream out, Graph graph)
-    { createRDFXMLAbbrev().write(out, graph) ; }
-    
-    /** Write a model as RDF/XML
-     * @param out       OutputStream
-     * @param model     Model to write 
-     */
-    public static void writeRDFXMLStreaming(OutputStream out, Model model)
-    { writeRDFXMLStreaming(out, model.getGraph()) ; }
-    
-    /** Write a graph as RDF/XML
-     * @param out       OutputStream
-     * @param graph     Graph to write 
-     */
-    public static void writeRDFXMLStreaming(OutputStream out, Graph graph)
-    { createRDFXMLPlain().write(out, graph) ; }
-    
-    /** Write a model as RDF/JSON (this is not JSON-LD)
-     * @param out       OutputStream
-     * @param model     Model to write 
-     */
-    public static void writeRDFJSON(OutputStream out, Model model)
-    { writeRDFJSON(out, model.getGraph()) ; }
-    
-    /** Write a graph as RDF/JSON (this is not JSON-LD)
-     * @param out       OutputStream
-     * @param graph     Graph to write 
-     */
+    // Compatibility stuff
+    /** @deprecated Use RDFWriterMgr.write(OutputStream, DatasetGraph, Lang.NQUADS) */
+    @Deprecated
+    public static void writeNQuads(OutputStream out, DatasetGraph dsg)
+    {
+        RDFWriterMgr.write(out, dsg, Lang.NQUADS) ;
+    }
+    
+    public static void writeNQuads(OutputStream out, Iterator<Quad> it)
+    {
+        NQuadsWriter.write(out, it) ;
+    }
+
+    /** @deprecated Use RDFWriterMgr.write(OutputStream, Graph, Lang.NTRIPLES) */
+    @Deprecated
+    public static void writeTriples(OutputStream out, Graph graph)
+    {
+        RDFWriterMgr.write(out, graph, Lang.NTRIPLES) ;
+    }
+    
+    public static void writeTriples(OutputStream out, Iterator<Triple> it)
+    {
+        NTriplesWriter.write(out, it) ;
+    }
+
+    /** @deprecated Use RDFWriterMgr.write(OutputStream, Graph, Lang.RDFJSON) */
+    @Deprecated
     public static void writeRDFJSON(OutputStream out, Graph graph)
-    { createRDFJSON().write(out, graph) ; }
-    
-    /** Write a dataset as TriG
-     * @param out       OutputStream
-     * @param dataset   Dataset to write 
-     */
-    public static void writeTrig(OutputStream out, Dataset dataset)
-    { writeTrig(out, dataset.asDatasetGraph()) ; }
-
-    /** Write a dataset as TriG
-     * @param out       OutputStream
-     * @param dataset   Dataset to write 
-     */
-    public static void writeTrig(OutputStream out, DatasetGraph dataset)
-    { createTrig().write(out, dataset) ; }
-    
-    /** Write a dataset as TriG, using a streaming writer
-     * @param out       OutputStream
-     * @param dataset   Dataset to write 
-     */
-    public static void writeTrigStreaming(OutputStream out, Dataset dataset)
-    { writeTrigStreaming(out, dataset.asDatasetGraph()) ; }
-
-    /** Write a dataset as TriG, using a streaming writer
-     * @param out       OutputStream
-     * @param dataset   Dataset to write 
-     */
-    public static void writeTrigStreaming(OutputStream out, DatasetGraph dataset)
-    { createTrigStreaming().write(out, dataset) ; }
-    
-    /** Write a dataset as NQuads
-     * @param out       OutputStream
-     * @param dataset   Dataset to write 
-     */
-    public static void writeNQuads(OutputStream out, Dataset dataset)
-    { writeNQuads(out, dataset.asDatasetGraph()) ; }
-    
-    /** Write a dataset as NQuads
-     * @param out       OutputStream
-     * @param dataset   Dataset to write 
-     */
-    public static void writeNQuads(OutputStream out, DatasetGraph dataset)
-    { createNQuads().write(out, dataset) ; }
-    
+    {
+        RDFWriterMgr.write(out, graph, Lang.RDFJSON) ;
+    }
+
+    // Remove after release ... no one should be using this code unless
+    // they used the off-trunk development code. 
+    
+//    /** Write as Turtle
+//     * @param out   OutputStream
+//     * @param model Model to write 
+//     */
+//    public static void writeTurtle(OutputStream out, Model model)
+//    { writeTurtle(out, model.getGraph()) ; }
+//    
+//    /** Write as Turtle
+//     * @param out   OutputStream
+//     * @param graph Graph to write 
+//     */
+//    public static void writeTurtle(OutputStream out, Graph graph)
+//    { createTurtle().write(out, graph) ; }
+//
+//    /** Write as Turtle, using a streaming writer
+//     * @param out   OutputStream
+//     * @param model Model to write 
+//     */
+//    public static void writeTurtleStreaming(OutputStream out,  Model model)
+//    { writeTurtleStreaming(out, model.getGraph()) ; }
+//    
+//    /** Write as Turtle, using a streaming writer
+//     * @param out   OutputStream
+//     * @param graph Graph to write 
+//     */
+//    public static void writeTurtleStreaming(OutputStream out, Graph graph)
+//    { createTurtleStreaming().write(out, graph) ; }
+//
+//    /** Write a model as NTriples
+//     * @param out       OutputStream
+//     * @param model     Model to write 
+//     */
+//    public static void writeNTriples(OutputStream out, Model model)
+//    { writeNTriples(out, model.getGraph()) ; }
+//    
+//    /** Write a graph as NTriples
+//     * @param out       OutputStream
+//     * @param graph     Graph to write 
+//     */
+//    public static void writeNTriples(OutputStream out, Graph graph)
+//    { createNTriples().write(out, graph) ; }
+//
+//    /** Write a model as RDF/XML
+//     * @param out       OutputStream
+//     * @param model     Model to write 
+//     */
+//    public static void writeRDFXML(OutputStream out, Model model)
+//    { writeRDFXML(out, model.getGraph()) ; }
+//    
+//    /** Write a graph as RDF/XML
+//     * @param out       OutputStream
+//     * @param graph     Graph to write 
+//     */
+//    public static void writeRDFXML(OutputStream out, Graph graph)
+//    { createRDFXMLAbbrev().write(out, graph) ; }
+//    
+//    /** Write a model as RDF/XML
+//     * @param out       OutputStream
+//     * @param model     Model to write 
+//     */
+//    public static void writeRDFXMLStreaming(OutputStream out, Model model)
+//    { writeRDFXMLStreaming(out, model.getGraph()) ; }
+//    
+//    /** Write a graph as RDF/XML
+//     * @param out       OutputStream
+//     * @param graph     Graph to write 
+//     */
+//    public static void writeRDFXMLStreaming(OutputStream out, Graph graph)
+//    { createRDFXMLPlain().write(out, graph) ; }
+//    
+//    /** Write a model as RDF/JSON (this is not JSON-LD)
+//     * @param out       OutputStream
+//     * @param model     Model to write 
+//     */
+//    public static void writeRDFJSON(OutputStream out, Model model)
+//    { writeRDFJSON(out, model.getGraph()) ; }
+//    
+//    /** Write a graph as RDF/JSON (this is not JSON-LD)
+//     * @param out       OutputStream
+//     * @param graph     Graph to write 
+//     */
+//    public static void writeRDFJSON(OutputStream out, Graph graph)
+//    { createRDFJSON().write(out, graph) ; }
+//    
+//    /** Write a dataset as TriG
+//     * @param out       OutputStream
+//     * @param dataset   Dataset to write 
+//     */
+//    public static void writeTrig(OutputStream out, Dataset dataset)
+//    { writeTrig(out, dataset.asDatasetGraph()) ; }
+//
+//    /** Write a dataset as TriG
+//     * @param out       OutputStream
+//     * @param dataset   Dataset to write 
+//     */
+//    public static void writeTrig(OutputStream out, DatasetGraph dataset)
+//    { createTrig().write(out, dataset) ; }
+//    
+//    /** Write a dataset as TriG, using a streaming writer
+//     * @param out       OutputStream
+//     * @param dataset   Dataset to write 
+//     */
+//    public static void writeTrigStreaming(OutputStream out, Dataset dataset)
+//    { writeTrigStreaming(out, dataset.asDatasetGraph()) ; }
+//
+//    /** Write a dataset as TriG, using a streaming writer
+//     * @param out       OutputStream
+//     * @param dataset   Dataset to write 
+//     */
+//    public static void writeTrigStreaming(OutputStream out, DatasetGraph dataset)
+//    { createTrigStreaming().write(out, dataset) ; }
+//    
+//    /** Write a dataset as NQuads
+//     * @param out       OutputStream
+//     * @param dataset   Dataset to write 
+//     */
+//    public static void writeNQuads(OutputStream out, Dataset dataset)
+//    { writeNQuads(out, dataset.asDatasetGraph()) ; }
+//    
+//    /** Write a dataset as NQuads
+//     * @param out       OutputStream
+//     * @param dataset   Dataset to write 
+//     */
+//    public static void writeNQuads(OutputStream out, DatasetGraph dataset)
+//    { createNQuads().write(out, dataset) ; }
+//    
     // ---- Create writers
 
     /** Create a Turtle writer */

Modified: jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java Sat Mar  2 17:39:07 2013
@@ -25,6 +25,7 @@ import org.apache.jena.riot.Lang ;
 import org.apache.jena.riot.system.PrefixMap ;
 
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 /**
  * A RIOT serializer for a language.
@@ -33,18 +34,32 @@ import com.hp.hpl.jena.sparql.core.Datas
  */
 public interface WriterDatasetRIOT
 {
-    public void  write(OutputStream out, DatasetGraph datasetGraph) ;
+//    public void  write(OutputStream out, DatasetGraph datasetGraph) ;
+//    
+//    //public void  write(OutputStream out, DatasetGraph datasetGraph, PrefixMap prefixMap) ;
+//
+//    public void  write(OutputStream out, DatasetGraph datasetGraph, String baseURI) ;
     
-    //public void  write(OutputStream out, DatasetGraph datasetGraph, PrefixMap prefixMap) ;
+    /**
+     * @param out           OutputStream
+     * @param datasetGraph  DatasetGraph to be written
+     * @param prefixMap     PrefixMap - maybe null (default should be to use the prefixmapping from the Graph)
+     * @param baseURI       base URI - may be null for "none"
+     * @param context       Context (see specific implementation for details) 
+     */
+    public void  write(OutputStream out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI, Context context) ;
 
-    public void  write(OutputStream out, DatasetGraph datasetGraph, String baseURI) ;
+//    /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format */
+//    public void  write(Writer out, DatasetGraph datasetGraph) ;
     
-    public void  write(OutputStream out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI) ;
-
-    /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format */
-    public void  write(Writer out, DatasetGraph datasetGraph) ;
-    
-    public void  write(Writer out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI) ;
+    /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format
+     * @param out           Writer
+     * @param datasetGraph  DatasetGraph to be written
+     * @param prefixMap     PrefixMap - maybe null (default should be to use the prefixmapping from the Graph)
+     * @param baseURI       base URI - may be null for "none"
+     * @param context       Context (see specific implementation for details) 
+     */
+    public void  write(Writer out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI, Context context) ;
     
     public Lang  getLang() ;
 }

Modified: jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java Sat Mar  2 17:39:07 2013
@@ -26,6 +26,7 @@ import org.apache.jena.riot.system.Prefi
 import riot.writer.WriterGraphRIOTBase ;
 
 import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 /**
  * A RIOT serializer for a language.
@@ -35,19 +36,23 @@ import com.hp.hpl.jena.graph.Graph ;
  */
 public interface WriterGraphRIOT
 {
-    public void  write(OutputStream out, Graph graph) ;
-    
-//    public void  write(OutputStream out, Graph graph, PrefixMap prefixMap) ;
-
-    public void  write(OutputStream out, Graph graph, String baseURI) ;
-    
-    public void  write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI) ;
+    /**
+     * @param out           OutputStream
+     * @param graph         Graph to be written
+     * @param prefixMap     PrefixMap - maybe null (default should be to use the prefixmapping from the Graph)
+     * @param baseURI       base URI - may be null for "none"
+     * @param context       Context (see specific implementation for details) 
+     */
+    public void  write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context) ;
 
-    /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format */
-    public void  write(Writer out, Graph graph) ;
-    
-    /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format */
-    public void  write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI) ;
+    /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format
+     * @param out           Writer
+     * @param graph         Graph to be written
+     * @param prefixMap     PrefixMap - maybe null (default should be to use the prefixmapping from the Graph)
+     * @param baseURI       base URI - may be null for "none"
+     * @param context       Context (see specific implementation for details) 
+     */
+    public void  write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context) ;
     
     public Lang  getLang() ;
 }

Added: jena/Experimental/riot-output/src/main/java/riot/WriterRIOT.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterRIOT.java?rev=1451911&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterRIOT.java (added)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterRIOT.java Sat Mar  2 17:39:07 2013
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package riot;
+
+import java.io.OutputStream ;
+import java.io.Writer ;
+
+import org.apache.jena.riot.system.PrefixMap ;
+
+import com.hp.hpl.jena.sparql.util.Context ;
+
+/*public*/ interface WriterRIOT
+{
+    /**
+     * @param out           OutputStream
+     */
+    public void write(OutputStream out) ;
+
+    /**
+     * @param out           OutputStream
+     * @param baseURI       base URI - may be null for "none"
+     */
+
+    public void write(OutputStream out, String baseURI) ;
+    /**
+     * @param out           OutputStream
+     * @param prefixMap     PrefixMap - maybe null (default should be to use the prefixmapping from the Graph)
+     * @param baseURI       base URI - may be null for "none"
+     * @param context       Context (see specific implementation for details) 
+     */
+    public void write(OutputStream out, PrefixMap prefixMap, String baseURI, Context context) ;
+
+    /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format
+     * @param out           Writer
+     * @param prefixMap     PrefixMap - maybe null (default should be to use the prefixmapping from the Graph)
+     * @param baseURI       base URI - may be null for "none"
+     * @param context       Context (see specific implementation for details) 
+     */
+    public void  write(Writer out, PrefixMap prefixMap, String baseURI, Context context) ;
+}
+

Modified: jena/Experimental/riot-output/src/main/java/riot/adpaters/AdapterRDFWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/adpaters/AdapterRDFWriter.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/adpaters/AdapterRDFWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/adpaters/AdapterRDFWriter.java Sat Mar  2 17:39:07 2013
@@ -28,6 +28,7 @@ import riot.writer.WriterGraphRIOTBase ;
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.rdf.model.ModelFactory ;
 import com.hp.hpl.jena.rdf.model.RDFWriter ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 /** Wrapper for using old-style Jena RDFWriters in RIOT. */
 
@@ -38,14 +39,14 @@ public abstract class AdapterRDFWriter e
     @Override public abstract Lang getLang() ;
 
     @Override
-    public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
+    public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
     {
         RDFWriter w = create() ;
         w.write(ModelFactory.createModelForGraph(graph), out, baseURI) ;
     }
 
     @Override
-    public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI)
+    public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
     {
         RDFWriter w = create() ;
         w.write(ModelFactory.createModelForGraph(graph), out, baseURI) ;

Modified: jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java Sat Mar  2 17:39:07 2013
@@ -67,7 +67,7 @@ public class RDFWriterRIOT implements RD
         if (  base != null && base.equals("") )
             base = null ;
         Graph graph = model.getGraph() ;
-        writer().write(out, graph, prefixMap(graph), base) ;
+        writer().write(out, graph, prefixMap(graph), base, context) ;
     }
 
     @Override
@@ -76,7 +76,7 @@ public class RDFWriterRIOT implements RD
         if ( base != null && base.equals("") )
             base = null ;
         Graph graph = model.getGraph() ;
-        writer().write(out, graph, prefixMap(graph), base) ;
+        writer().write(out, graph, prefixMap(graph), base, context) ;
     }
 
     @Override

Modified: jena/Experimental/riot-output/src/main/java/riot/system/RiotWriterLib.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/system/RiotWriterLib.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/system/RiotWriterLib.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/system/RiotWriterLib.java Sat Mar  2 17:39:07 2013
@@ -42,6 +42,7 @@ import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.graph.Triple ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
 import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
+import com.hp.hpl.jena.sparql.util.Context ;
 import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
 
 /** Support code for the RIOT */ 
@@ -209,12 +210,12 @@ public class RiotWriterLib
         { return writer.getLang() ; }
 
         @Override
-        public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI)
-        { writer.write(out, RiotWriterLib.dataset(graph), prefixMap, baseURI) ; }
+        public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
+        { writer.write(out, RiotWriterLib.dataset(graph), prefixMap, baseURI, context) ; }
         
         @Override
-        public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
-        { writer.write(out, RiotWriterLib.dataset(graph), prefixMap, baseURI) ; }
+        public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
+        { writer.write(out, RiotWriterLib.dataset(graph), prefixMap, baseURI, context) ; }
     }
 }
 

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java Sat Mar  2 17:39:07 2013
@@ -29,6 +29,7 @@ import org.apache.jena.riot.system.Strea
 
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
 import com.hp.hpl.jena.sparql.core.Quad ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 public class NQuadsWriter extends WriterDatasetRIOTBase
 {
@@ -55,13 +56,13 @@ public class NQuadsWriter extends Writer
     }
 
     @Override
-    public void write(Writer out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI)
+    public void write(Writer out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI, Context context)
     {
         write(out, dataset.find(null, null, null, null)) ;
     }
 
     @Override
-    public void write(OutputStream out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI)
+    public void write(OutputStream out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI, Context context)
     {
         write(out, dataset.find(null, null, null, null)) ;
     }

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java Sat Mar  2 17:39:07 2013
@@ -29,6 +29,7 @@ import org.apache.jena.riot.system.Strea
 
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 public class NTriplesWriter extends WriterGraphRIOTBase
 {
@@ -55,13 +56,13 @@ public class NTriplesWriter extends Writ
     }
 
     @Override
-    public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
+    public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
     {
         write(out, graph.find(null, null, null)) ;
     }
 
     @Override
-    public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI)
+    public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
     {
         write(out, graph.find(null, null, null)) ;
     }

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/NullWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/NullWriter.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/NullWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/NullWriter.java Sat Mar  2 17:39:07 2013
@@ -28,8 +28,9 @@ import riot.WriterDatasetRIOT ;
 import riot.WriterDatasetRIOTFactory ;
 
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
-/** Null writer for datasets - can be used for RDF graphs via the adapter in RDFWriterRegistry */ 
+/** Null writer for datasets - can be used for RDF graphs via the adapter in from RiotWriterLib */ 
 public class NullWriter implements WriterDatasetRIOT
 {
     public static WriterDatasetRIOTFactory factory = new WriterDatasetRIOTFactory() {
@@ -50,23 +51,10 @@ public class NullWriter implements Write
     }
 
     @Override
-    public void write(OutputStream out, DatasetGraph datasetGraph)
+    public void write(OutputStream out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI, Context context)
     {}
 
     @Override
-    public void write(OutputStream out, DatasetGraph datasetGraph, String baseURI)
-    {}
-
-    @Override
-    public void write(OutputStream out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI)
-    {}
-
-    @Override
-    public void write(Writer out, DatasetGraph datasetGraph)
-    {}
-
-    @Override
-    public void write(Writer out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI)
+    public void write(Writer out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI, Context context)
     {}
 }
-

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/RDFJSONWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/RDFJSONWriter.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/RDFJSONWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/RDFJSONWriter.java Sat Mar  2 17:39:07 2013
@@ -36,6 +36,7 @@ import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.graph.GraphUtil ;
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.sparql.util.Context ;
 import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
 
 public class RDFJSONWriter extends WriterGraphRIOTBase
@@ -92,13 +93,13 @@ public class RDFJSONWriter extends Write
     }
 
     @Override
-    public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
+    public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
     {
         output(out, graph) ;
     }
 
     @Override
-    public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI)
+    public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
     {
         output(out, graph) ;
     }

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBase.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBase.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBase.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBase.java Sat Mar  2 17:39:07 2013
@@ -27,6 +27,7 @@ import org.apache.jena.riot.system.Prefi
 import riot.system.RiotWriterLib ;
 
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 /** TriG writer base class - ways to invoke a TriG writer */
 public abstract class TriGWriterBase extends WriterDatasetRIOTBase
@@ -38,7 +39,7 @@ public abstract class TriGWriterBase ext
     }
 
     @Override
-    public void write(Writer out, DatasetGraph dsg, PrefixMap prefixMap, String baseURI)
+    public void write(Writer out, DatasetGraph dsg, PrefixMap prefixMap, String baseURI, Context context)
     {
         IndentedWriter iOut = RiotWriterLib.create(out) ;
         output$(iOut, dsg, prefixMap, baseURI) ;
@@ -46,7 +47,7 @@ public abstract class TriGWriterBase ext
     }
 
     @Override
-    public void write(OutputStream out, DatasetGraph dsg, PrefixMap prefixMap, String baseURI)
+    public void write(OutputStream out, DatasetGraph dsg, PrefixMap prefixMap, String baseURI, Context context)
     {
         IndentedWriter iOut = new IndentedWriter(out) ;
         output$(iOut, dsg, prefixMap, baseURI) ;

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java Sat Mar  2 17:39:07 2013
@@ -37,4 +37,3 @@ public class TriGWriterFlat extends TriG
         WriterStream.write(dest, datasetGraph, prefixMap, baseURI) ;
     }
 }
-

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBase.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBase.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBase.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBase.java Sat Mar  2 17:39:07 2013
@@ -27,6 +27,7 @@ import org.apache.jena.riot.system.Prefi
 import riot.system.RiotWriterLib ;
 
 import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 public abstract class TurtleWriterBase extends WriterGraphRIOTBase
 {
@@ -37,7 +38,7 @@ public abstract class TurtleWriterBase e
     }
 
     @Override
-    public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
+    public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
     {
         IndentedWriter iOut = RiotWriterLib.create(out) ;
         output$(iOut, graph, prefixMap, baseURI) ;
@@ -45,7 +46,7 @@ public abstract class TurtleWriterBase e
     }
 
     @Override
-    public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI)
+    public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
     {
         IndentedWriter iOut = new IndentedWriter(out) ;
         output$(iOut, graph, prefixMap, baseURI) ;

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/WriterDatasetRIOTBase.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/WriterDatasetRIOTBase.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/WriterDatasetRIOTBase.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/WriterDatasetRIOTBase.java Sat Mar  2 17:39:07 2013
@@ -26,6 +26,7 @@ import org.apache.jena.riot.system.Prefi
 import riot.WriterDatasetRIOT ;
 
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 public abstract class WriterDatasetRIOTBase implements WriterDatasetRIOT
 {
@@ -35,20 +36,8 @@ public abstract class WriterDatasetRIOTB
     }
     
     @Override
-    public void write(OutputStream out, DatasetGraph dataset)
-    { write(out, dataset, prefixMap(dataset), null) ; }
-
-    @Override
-    public void write(OutputStream out, DatasetGraph dataset, String baseURI)
-    { write(out, dataset, prefixMap(dataset), baseURI) ; }
-
-    @Override
-    public void write(Writer out, DatasetGraph dataset)
-    { write(out, dataset, prefixMap(dataset), null) ; }
-    
-    @Override
-    public abstract void write(Writer out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI) ;
+    public abstract void write(Writer out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI, Context context) ;
     
     @Override
-    public abstract void write(OutputStream out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI) ;
+    public abstract void write(OutputStream out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI, Context context) ;
 }

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/WriterGraphRIOTBase.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/WriterGraphRIOTBase.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/WriterGraphRIOTBase.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/WriterGraphRIOTBase.java Sat Mar  2 17:39:07 2013
@@ -22,33 +22,16 @@ import java.io.OutputStream ;
 import java.io.Writer ;
 
 import org.apache.jena.riot.system.PrefixMap ;
-import org.apache.jena.riot.system.PrefixMapFactory ;
 import riot.WriterGraphRIOT ;
 
 import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.sparql.util.Context ;
 
 public abstract class WriterGraphRIOTBase implements WriterGraphRIOT
 {
-    private static PrefixMap prefixMap(Graph graph)
-    {
-        return PrefixMapFactory.create(graph.getPrefixMapping()) ;
-    }
-    
-    @Override
-    public void write(OutputStream out, Graph graph)
-    { write(out, graph, prefixMap(graph), null) ; }
-
-    @Override
-    public void write(OutputStream out, Graph graph, String baseURI)
-    { write(out, graph, prefixMap(graph), baseURI) ; }
-
-    @Override
-    public void write(Writer out, Graph graph)
-    { write(out, graph, prefixMap(graph), null) ; }
-    
     @Override
-    public abstract void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI) ;
+    public abstract void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context) ;
     
     @Override
-    public abstract void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI) ;
+    public abstract void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context) ;
 }

Modified: jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java?rev=1451911&r1=1451910&r2=1451911&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java Sat Mar  2 17:39:07 2013
@@ -42,8 +42,11 @@ public class WriterStream
 
     protected static void writePrefixes(StreamRDF dest, PrefixMap prefixMap)
     {
-        for ( Entry<String, String> e : prefixMap.getMappingCopyStr().entrySet())
-            dest.prefix(e.getKey(), e.getValue()) ;
+        if ( prefixMap != null )
+        {
+            for ( Entry<String, String> e : prefixMap.getMappingCopyStr().entrySet())
+                dest.prefix(e.getKey(), e.getValue()) ;
+        }
     }
 
     protected static void write(StreamRDF dest, DatasetGraph datasetGraph, PrefixMap prefixes, String baseURI)