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 2012/12/22 18:52:29 UTC

svn commit: r1425325 [2/4] - in /jena/trunk/jena-arq: ./ src-examples/arq/examples/riot/ src-examples/arq/examples/update/ src/main/java/arq/ src/main/java/arq/cmdline/ src/main/java/com/hp/hpl/jena/query/ src/main/java/com/hp/hpl/jena/sparql/engine/bi...

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java (from r1423683, jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/WebReader2.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java&p1=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/WebReader2.java&r1=1423683&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/WebReader2.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java Sat Dec 22 17:52:26 2012
@@ -25,23 +25,27 @@ import java.io.StringReader ;
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.io.PeekReader ;
 import org.apache.jena.atlas.json.io.parser.TokenizerJSON ;
-import org.apache.jena.atlas.lib.Sink ;
 import org.apache.jena.atlas.web.ContentType ;
 import org.apache.jena.atlas.web.TypedInputStream ;
-import org.apache.jena.riot.lang.* ;
+import org.apache.jena.riot.lang.LangRDFXML ;
+import org.apache.jena.riot.lang.LangRIOT ;
+import org.apache.jena.riot.lang.RDFParserOutput ;
+import org.apache.jena.riot.lang.RDFParserOutputLib ;
 import org.apache.jena.riot.stream.StreamManager ;
+import org.apache.jena.riot.system.ErrorHandlerFactory ;
 import org.apache.jena.riot.tokens.Tokenizer ;
 import org.apache.jena.riot.tokens.TokenizerFactory ;
-import org.openjena.riot.* ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
 
 import com.hp.hpl.jena.graph.Graph ;
-import com.hp.hpl.jena.graph.Triple ;
 import com.hp.hpl.jena.query.Dataset ;
+import com.hp.hpl.jena.query.DatasetFactory ;
 import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.ModelFactory ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
-import com.hp.hpl.jena.sparql.core.Quad ;
+import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
+import com.hp.hpl.jena.sparql.graph.GraphFactory ;
 import com.hp.hpl.jena.sparql.util.Context ;
 import com.hp.hpl.jena.sparql.util.Symbol ;
 import com.hp.hpl.jena.sparql.util.Utils ;
@@ -61,81 +65,118 @@ import com.hp.hpl.jena.sparql.util.Utils
  *  </p>
  */
 
-public class WebReader2
+public class RDFDataMgr
 {
     /* Maybe:
      * static for global (singleton) and locally tailored. 
      */
     
-    static Logger log = LoggerFactory.getLogger(WebReader2.class) ;
+    static Logger log = LoggerFactory.getLogger(RDFDataMgr.class) ;
     private static String riotBase = "http://jena.apache.org/riot/" ; 
     private static String streamManagerSymbolStr = riotBase+"streammanager" ; 
     public static Symbol streamManagerSymbol = Symbol.create(streamManagerSymbolStr) ; 
-
-    
-    // Yukky hack to integrate into current jena-core where the structure of model.read assumes
-    // the language is determined before the reading process starts.
-    
-    public static class RDFReaderRIOT_RDFXML extends RDFReaderRIOT   { public RDFReaderRIOT_RDFXML() { super("RDF/XML") ; } }
-    public static class RDFReaderRIOT_TTL extends RDFReaderRIOT      { public RDFReaderRIOT_TTL() { super("TTL") ; } }
-    public static class RDFReaderRIOT_NT extends RDFReaderRIOT       { public RDFReaderRIOT_NT() { super("N-TRIPLE") ; } }
-    public static class RDFReaderRIOT_RDFJSON extends RDFReaderRIOT  { public RDFReaderRIOT_RDFJSON() { super("RDF/JSON") ; } }
-
-    
-    public static void resetJenaReaders()
-    {
-        SysRIOT.resetJenaReaders() ;
-    }
     
     /** Read triples into a Model from the given location. 
-     *  The synatx is detemined from input source URI (content negotiation or extension). 
-     * @see #read(Model,String,Lang2,Context) 
+     *  The syntax is detemined from input source URI (content negotiation or extension). 
      * @param model Destination for the RDF read.
      * @param uri   URI to read from (includes file: and a plain file name).
+     * @throws RiotNotFoundException if the location is not found - the model is unchanged.
+     * @see #read(Model,String,Lang,Context) 
      */
-    public static void read(Model model, String uri)                    { read(model, uri, null, null, null) ; }
+    public static void read(Model model, String uri)                    { read(model.getGraph(), uri) ; }
     
+    /** Read triples into a Model from the given location. 
+     *  The syntax is detemined from input source URI (content negotiation or extension). 
+     * @param graph Destination for the RDF read.
+     * @param uri   URI to read from (includes file: and a plain file name).
+     * @throws RiotNotFoundException if the location is not found - the graph is unchanged.
+     * @see #read(Graph,String,Lang,Context) 
+     */
+    public static void read(Graph graph, String uri)                    { read(graph, uri, null, null, null) ; }
+
     /** Read triples into a Model from the given location, with a hint of the language (MIME type) 
-     * @see #read(Model,String,String,Lang2,Context) 
      * @param model     Destination for the RDF read.
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param hintLang  Hint for the syntax.
+     * @throws RiotNotFoundException if the location is not found - the model is unchanged.
+     * @see #read(Model,String,String,Lang,Context) 
      */
-    public static void read(Model model, String uri, Lang2 hintLang)   { read(model, uri, hintLang, null) ; }
+    public static void read(Model model, String uri, Lang hintLang)    { read(model.getGraph(), uri, hintLang) ; } 
     
-    /** Read triples into a Model from the given location, with hint of langauge and the with some parameters for the reader 
-     * @see #read(Model,String,String,Lang2,Context) 
-     * Throws parse errors depending on the language and reader; the Model model may be partially updated.
+    /** Read triples into a Model from the given location, with a hint of the language (MIME type or short name) 
+     * @param graph     Destination for the RDF read.
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param hintLang  Hint for the syntax.
+     * @throws RiotNotFoundException if the location is not found - the graph is unchanged.
+     * @see #read(Graph,String,Lang,Context) 
+     */
+    public static void read(Graph graph, String uri, Lang hintLang)    { read(graph, uri, hintLang, null) ; }
+    
+    /** Read triples into a Model from the given location, with hint of language and with some parameters for the reader 
+     * @see #read(Model,String,String,Lang,Context) 
+     * Throws parse errors depending on the language and reader; the model may be partially updated.
      * @param model     Destination for the RDF read.
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param base      Base URI (defaults to uri).
      * @param hintLang  Hint for the syntax
      * @throws RiotNotFoundException if the location is not found - the model is unchanged.
      */
-    public static void read(Model model, String uri, String base, Lang2 hintLang) { read(model, uri, base, hintLang, null) ; }
+    public static void read(Model model, String uri, String base, Lang hintLang) { read(model.getGraph(), uri, base, hintLang) ; }
+    
+    /** Read triples into a Model from the given location, with hint of language and the with some parameters for the reader 
+     * @see #read(Graph,String,String,Lang,Context) 
+     * Throws parse errors depending on the language and reader; the Model model may be partially updated.
+     * @param graph     Destination for the RDF read.
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param base      Base URI (defaults to uri).
+     * @param hintLang  Hint for the syntax
+     * @throws RiotNotFoundException if the location is not found - the graph is unchanged.
+     */
+    public static void read(Graph graph, String uri, String base, Lang hintLang) { read(graph, uri, base, hintLang, null) ; }
     
     /** Read triples into a Model from the given location, with some parameters for the reader
-     * @see #read(Model,String,String,Lang2,Context) 
+     * @see #read(Model,String,String,Lang,Context) 
      * @param model     Destination for the RDF read
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param context   Content object to control reading process.
+     * @throws RiotNotFoundException if the location is not found - the model is unchanged.
      */ 
-    public static void read(Model model, String uri, Context context)   { read(model, uri, null, context) ; }
+    public static void read(Model model, String uri, Context context)   { read(model.getGraph(), uri, context) ; }
     
-    /** Read triples into a Model from the given location, with hint of langauge and the with some parameters for the reader 
-     * @see #read(Model,String,String,Lang2,Context) 
+    /** Read triples into a Model from the given location, with some parameters for the reader
+     * @see #read(Graph,String,String,Lang,Context) 
+     * @param graph     Destination for the RDF read
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param context   Content object to control reading process.
+     * @throws RiotNotFoundException if the location is not found - the graph is unchanged.
+     */ 
+    public static void read(Graph graph, String uri, Context context)   { read(graph, uri, null, context) ; }
+    
+    /** Read triples into a Model from the given location, with hint of language and the with some parameters for the reader 
+     * @see #read(Model,String,String,Lang,Context) 
      * @param model     Destination for the RDF read
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param hintLang  Hint for the syntax
      * @param context   Content object to control reading process.
+     * @throws RiotNotFoundException if the location is not found - the model is unchanged.
+     */
+    public static void read(Model model, String uri, Lang hintLang, Context context)
+    { read(model, uri, uri, hintLang, context) ; }
+    
+    /** Read triples into a Model from the given location, with hint of language and with some parameters for the reader 
+     * @see #read(Graph,String,String,Lang,Context) 
+     * @param graph     Destination for the RDF read
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param hintLang  Hint for the syntax
+     * @param context   Content object to control reading process.
+     * @throws RiotNotFoundException if the location is not found - the graph is unchanged.
     */
-    public static void read(Model model, String uri, Lang2 hintLang, Context context)
-    {
-        read(model, uri, uri, hintLang, context) ;
-    }
+    public static void read(Graph graph, String uri, Lang hintLang, Context context)
+    { read(graph, uri, uri, hintLang, context) ; }
     
-    /** Read triples into a Model from the given location, with hint of langauge and the with some parameters for the reader 
-     * Throws parse errors depending on the language and reader; the Model model may be partially updated.
+    /** Read triples into a Model from the given location, with hint of language 
+     * and with some parameters for the reader. 
+     * Throws parse errors depending on the language and reader; the model may be partially updated.
      * @param model     Destination for the RDF read.
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param base      Base URI (defaults to uri).
@@ -143,10 +184,21 @@ public class WebReader2
      * @param context   Content object to control reading process.
      * @throws RiotNotFoundException if the location is not found - the model is unchanged.
      */
-    public static void read(Model model, String uri, String base, Lang2 hintLang, Context context)
+    public static void read(Model model, String uri, String base, Lang hintLang, Context context)
+	{ read(model.getGraph(), uri, base, hintLang, context) ; }
+
+    /** Read triples into a Model from the given location, with hint of language and the with some parameters for the reader 
+     * Throws parse errors depending on the language and reader; the graph may be partially updated.
+     * @param graph     Destination for the RDF read.
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param base      Base URI (defaults to uri).
+     * @param hintLang  Hint for the syntax
+     * @param context   Content object to control reading process.
+     * @throws RiotNotFoundException if the location is not found - the model is unchanged.
+     */
+    public static void read(Graph graph, String uri, String base, Lang hintLang, Context context)
     {
-        Graph g = model.getGraph() ;
-        RDFParserOutput dest = RDFParserOutputLib.graph(g) ;
+        RDFParserOutput dest = RDFParserOutputLib.graph(graph) ;
         readTriples(dest, uri, base, hintLang, context) ;
     }
 
@@ -158,43 +210,73 @@ public class WebReader2
      * @param in        InputStream
      * @param lang      Language syntax
      */
-
-    public static void read(Model model, InputStream in, Lang2 lang)
-    {
-        read(model, in, null, lang) ;
-    }
+    public static void read(Model model, InputStream in, Lang lang)    { read(model.getGraph(), in, lang) ; }
         
     /** Read triples into a Model with bytes from an InputStream.
      *  A base URI and a syntax can be provided.
      *  The base URI defualts to "no base" in which case the data should have no relative URIs.
      *  The lang gives the syntax of the stream. 
+     * @param graph     Destination for the RDF read.
+     * @param in        InputStream
+     * @param lang      Language syntax
+     */
+    public static void read(Graph graph, InputStream in, Lang lang)    { read(graph, in, null, lang) ; }
+
+    /** Read triples into a Model with bytes from an InputStream.
+     *  A base URI and a syntax can be provided.
+     *  The base URI defualts to "no base" in which case the data should have no relative URIs.
+     *  The lang gives the syntax of the stream. 
      * @param model     Destination for the RDF read.
      * @param in        InputStream
      * @param base      Base URI 
      * @param lang      Language syntax
      */
-    public static void read(Model model, InputStream in, String base, Lang2 lang)
+    public static void read(Model model, InputStream in, String base, Lang lang)
+    { read(model.getGraph(), in, base, lang) ; }
+
+    /** Read triples into a Model with bytes from an InputStream.
+     *  A base URI and a syntax can be provided.
+     *  The base URI defualts to "no base" in which case the data should have no relative URIs.
+     *  The lang gives the syntax of the stream. 
+     * @param graph     Destination for the RDF read.
+     * @param in        InputStream
+     * @param base      Base URI 
+     * @param lang      Language syntax
+     */
+    public static void read(Graph graph, InputStream in, String base, Lang lang)
     {
-        Graph g = model.getGraph() ;
-        RDFParserOutput dest = RDFParserOutputLib.graph(g) ;
-        Sink<Triple> sink = new SinkTriplesToGraph(g) ;
+        RDFParserOutput dest = RDFParserOutputLib.graph(graph) ;
         processTriples(dest, base, new TypedInputStream(in), lang, null) ;
     }
 
     /** Read triples into a model with chars from an Reader.
-     * Use java.io.Readers is not encouraged - use with a StringReader is the primary use case.
+     * Use of java.io.Readers is not encouraged - use with a StringReader is the primary use case.
      * For files, open a {@link java.io.FileInputStream} to ensure correct character set handling.
-     * @deprecated Use an InputStream or StringReader.
+     * @deprecated     Use an InputStream or StringReader.
      * @param model     Destination for the RDF read.
      * @param in        Reader
      * @param base      Base URI 
      * @param lang      Language syntax
      */
     @Deprecated
-    public static void read(Model model, Reader in, String base, Lang2 lang)
+    public static void read(Model model, Reader in, String base, Lang lang)
     {
-        Graph g = model.getGraph() ;
-        RDFParserOutput dest = RDFParserOutputLib.graph(g) ;
+        read(model.getGraph(), in, base,  lang) ;
+    }
+
+    /** Read triples into a model with chars from an Reader.
+     * Use of java.io.Readers is not encouraged - use with a StringReader is the primary use case.
+     * For files, open a {@link java.io.FileInputStream} to ensure correct character set handling.
+     * @deprecated     Use an InputStream or StringReader.
+     * @param graph     Destination for the RDF read.
+     * @param in        Reader
+     * @param base      Base URI 
+     * @param lang      Language syntax
+     */
+    @Deprecated
+    public static void read(Graph graph, Reader in, String base, Lang lang)
+    {
+        RDFParserOutput dest = RDFParserOutputLib.graph(graph) ;
         processTriples(dest, base, in, lang, null) ;
     }
 
@@ -204,49 +286,218 @@ public class WebReader2
      * @param base      Base URI 
      * @param lang      Language syntax
      */
-    public static void read(Model model, StringReader in, String base, Lang2 lang)
+    public static void read(Model model, StringReader in, String base, Lang lang)
     {
         Graph g = model.getGraph() ;
         RDFParserOutput dest = RDFParserOutputLib.graph(g) ;
         processTriples(dest, base, in, lang, null) ;
     }
 
+    /** Read triples into a model with chars from a StringReader.
+     * @param graph     Destination for the RDF read.
+     * @param in        InputStream
+     * @param base      Base URI 
+     * @param lang      Language syntax
+     */
+    public static void read(Graph graph, StringReader in, String base, Lang lang)
+    {
+        RDFParserOutput dest = RDFParserOutputLib.graph(graph) ;
+        processTriples(dest, base, in, lang, null) ;
+    }
+    
+    private static Model createModel() { return ModelFactory.createDefaultModel() ; } 
+    private static Graph createGraph() { return GraphFactory.createDefaultGraph() ; } 
+    private static Dataset createDataset() { return DatasetFactory.createMem() ; } 
+    private static DatasetGraph createDatasetGraph() { return DatasetGraphFactory.createMem() ; }
+    
+    // Load:
+    // Macros would be nice.
+
+    /** Create a memory Model and read in some data
+     * @see #read(Model,String) 
+     */ 
+    public static Model loadModel(String uri)
+    { 
+        Model m = createModel() ;
+        read(m, uri) ;
+        return m ;
+    }
+
+    /** Create a memory Model and read in some data
+     * @see #read(Model,String,Lang) 
+     */
+    public static Model loadModel(String uri, Lang lang)
+	{
+		Model m = createModel() ;
+        read(m, uri,lang) ;
+        return m ;
+	}
+
+    //public static Model loadModel(String uri, String base) { return null ; } 
+    //public static Model loadModel(String uri, String base, Lang lang) { return null ; } 
+
+    /** Create a memory Graph and read in some data
+     * @see #read(Graph,String) 
+     */ 
+    public static Graph loadGraph(String uri)
+	{ 
+        Graph g = createGraph() ;
+        read(g, uri) ;
+        return g ;
+    }
+
+	/** Create a memory Graph and read in some data
+     * @see #read(Graph,String,Lang) 
+     */ 
+    public static Graph loadGraph(String uri, Lang lang)
+	{ 
+        Graph g = createGraph() ;
+        read(g, uri, lang) ;
+        return g ;
+    }
+
+//  public static Graph loadGraph(String uri, String base) { return null ; } 
+//  public static Graph loadGraph(String uri, String base, Lang lang) { return null ; } 
+
+	/** Create a memory Dataset and read in some data
+     * @see #read(Dataset,String) 
+     */ 
+    public static Dataset loadDataset(String uri)
+	{ 
+        Dataset ds = createDataset() ;
+        read(ds, uri) ;
+        return ds ;
+    }
+
+	/** Create a memory Dataset and read in some data
+     * @see #read(Dataset,String,Lang) 
+     */
+    public static Dataset loadDataset(String uri, Lang lang)
+	{
+        Dataset ds = createDataset() ;
+        read(ds, uri, lang) ;
+        return ds ;
+	}
+
+//    public static Dataset loadDataset(String uri, String base) { return null ; } 
+//    public static Dataset loadDataset(String uri, String base, Lang lang) { return null ; } 
+//    public static Dataset loadDataset(String uri, String base, Lang lang, Context context) { return null ; } 
+
+	/** Create a memory DatasetGraph and read in some data
+     * @see #read(DatasetGraph,String) 
+     */ 
+    public static DatasetGraph loadDatasetGraph(String uri)
+	{
+		DatasetGraph ds = createDatasetGraph() ;
+        read(ds, uri) ;
+        return ds ;
+	}
+	/** Create a memory DatasetGraph and read in some data
+     * @see #read(DatasetGraph,String,Lang) 
+     */
+    public static DatasetGraph loadDatasetGraph(String uri, Lang lang)
+	{
+		DatasetGraph ds = createDatasetGraph() ;
+        read(ds, uri, lang) ;
+        return ds ;	
+	}
+
+//    public static DatasetGraph loadDatasetGraph(String uri, String base) { return null ; } 
+//    public static DatasetGraph loadDatasetGraph(String uri, String base, Lang lang) { return null ; } 
+//    public static DatasetGraph loadDatasetGraph(String uri, String base, Lang lang, Context context) { return null ; } 
     
-    /** Read quads into a Dataset from the given location, with hint of langauge.
-     * @see #read(Dataset, String, String, Lang2, Context) 
+    /** Read quads or triples into a Dataset from the given location, with hint of language.
+     * @see #read(Dataset, String, String, Lang, Context) 
+     * @param dataset   Destination
+     * @param uri       URI to read from (includes file: and a plain file name).
+     */
+    public static void read(Dataset dataset, String uri)
+    {
+        read(dataset.asDatasetGraph(), uri) ;
+    }
+
+    /** Read quads or triples into a Dataset from the given location, with hint of language.
+     * @see #read(DatasetGraph, String, String, Lang, Context) 
+     * @param dataset   Destination
+     * @param uri       URI to read from (includes file: and a plain file name).
+     */
+    public static void read(DatasetGraph dataset, String uri)
+    {
+        read(dataset, uri, null, null) ;
+    }
+
+    /** Read quads or triples into a Dataset from the given location, with hint of language.
+     * @see #read(Dataset, String, String, Lang, Context) 
      * @param dataset   Destination
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param hintLang  Language syntax
      */
-    public static void read(Dataset dataset, String uri, Lang2 hintLang)
+    public static void read(Dataset dataset, String uri, Lang hintLang)
+    {
+        read(dataset.asDatasetGraph(), uri, hintLang) ;
+    }
+
+    /** Read quads or triples into a Dataset from the given location, with hint of language.
+     * @see #read(DatasetGraph, String, String, Lang, Context) 
+     * @param dataset   Destination
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param hintLang  Language syntax
+     */
+    public static void read(DatasetGraph dataset, String uri, Lang hintLang)
     {
         read(dataset, uri, hintLang, null) ;
     }
 
     /** Read quads or triples into a Dataset from the given location. 
-     * @see #read(Dataset, String, String, Lang2, Context) 
+     * @see #read(Dataset, String, String, Lang, Context) 
+     * @param dataset   Destination
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param hintLang  Language syntax
+     */
+    public static void read(Dataset dataset, String uri, Lang hintLang, Context context)
+    {
+        read(dataset.asDatasetGraph(), uri, hintLang, context) ;
+    }
+    
+    /** Read quads or triples into a Dataset from the given location. 
+     * @see #read(DatasetGraph, String, String, Lang, Context) 
      * @param dataset   Destination
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param hintLang  Language syntax
      */
-    public static void read(Dataset dataset, String uri, Lang2 hintLang, Context context)
+    public static void read(DatasetGraph dataset, String uri, Lang hintLang, Context context)
     {
         read(dataset, uri, uri, hintLang, context) ;
     }
     
     /** Read quads or triples into a Dataset from the given location.
-     * @see #read(Dataset, String, String, Lang2, Context) 
+     * @see #read(Dataset, String, String, Lang, Context) 
+     * @param dataset   Destination
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param hintLang  Language syntax
+	 * @param context   Context for the reader
+	 * @throws RiotNotFoundException if the location is not found - the dataset is unchanged.
+	 * Throws parse errors depending on the language and reader; the dataset may be partially updated. 
+	 */ 
+
+    public static void read(Dataset dataset, String uri, String base, Lang hintLang, Context context)
+    {
+		read(dataset.asDatasetGraph(), uri, uri, hintLang, context) ;
+    }
+
+    /** Read quads or triples into a Dataset from the given location.
+     * @see #read(Dataset, String, String, Lang, Context) 
      * @param dataset   Destination
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param hintLang  Language syntax
-    *  @throws RiotNotFoundException if the location is not found - the model is unchanged.
-    *  Throws parse errors depending on the language and reader; the Model model may be partially updated. 
-    */ 
+	 * @param context   Context for the reader
+	 * @throws RiotNotFoundException if the location is not found - the dataset is unchanged.
+	 * Throws parse errors depending on the language and reader; the dataset may be partially updated. 
+	 */ 
 
-    public static void read(Dataset dataset, String uri, String base, Lang2 hintLang, Context context)
+    public static void read(DatasetGraph dataset, String uri, String base, Lang hintLang, Context context)
     {
-        DatasetGraph dsg = dataset.asDatasetGraph() ;
-        Sink<Quad> sink = new SinkQuadsToDataset(dsg) ;
+        RDFParserOutput sink = RDFParserOutputLib.dataset(dataset) ;
         readQuads(sink, uri, base, hintLang, context) ;
     }
 
@@ -255,7 +506,17 @@ public class WebReader2
      * @param in        InputStream
      * @param lang      Language syntax
      */
-    public static void read(Dataset dataset, InputStream in, Lang2 lang)
+    public static void read(Dataset dataset, InputStream in, Lang lang)
+    {
+        read(dataset.asDatasetGraph(), in, lang) ;
+    }
+    
+    /** Read quads or triples into a dataset with bytes from an input stream.
+     * @param dataset   Destination
+     * @param in        InputStream
+     * @param lang      Language syntax
+     */
+    public static void read(DatasetGraph dataset, InputStream in, Lang lang)
     {
         read(dataset, in, null, lang) ;
     }
@@ -266,10 +527,20 @@ public class WebReader2
      * @param base      Base URI
      * @param lang      Language syntax
      */
-    public static void read(Dataset dataset, InputStream in, String base, Lang2 lang)
+    public static void read(Dataset dataset, InputStream in, String base, Lang lang)
     {
-        DatasetGraph dsg = dataset.asDatasetGraph() ;
-        RDFParserOutput dest = RDFParserOutputLib.dataset(dsg) ;
+        read(dataset.asDatasetGraph(), in, base, lang) ; 
+    }
+    
+    /** Read quads or triples into a dataset with bytes from an input stream.
+     * @param dataset   Destination
+     * @param in        InputStream
+     * @param base      Base URI
+     * @param lang      Language syntax
+     */
+    public static void read(DatasetGraph dataset, InputStream in, String base, Lang lang)
+    {
+        RDFParserOutput dest = RDFParserOutputLib.dataset(dataset) ;
         processQuads(dest, base, new TypedInputStream(in), lang, null) ;
     }
     
@@ -283,10 +554,24 @@ public class WebReader2
      * @deprecated use an InputStream or a StringReader.
      */
     @Deprecated
-    public static void read(Dataset dataset, Reader in, String base, Lang2 lang)
+    public static void read(Dataset dataset, Reader in, String base, Lang lang)
+    {
+		read(dataset.asDatasetGraph(), in, base, lang) ;
+    }
+
+    /** Read quads into a dataset with chars from an Reader.
+     * Use java.io.Readers is not encouraged - use with a StringReader is the primary use case.
+     * For files, open a {@link java.io.FileInputStream} to ensure correct character set handling.
+     * @param dataset   Destination
+     * @param in        InputStream
+     * @param base      Base URI
+     * @param lang      Language syntax
+     * @deprecated use an InputStream or a StringReader.
+     */
+    @Deprecated
+    public static void read(DatasetGraph dataset, Reader in, String base, Lang lang)
     {
-        DatasetGraph dsg = dataset.asDatasetGraph() ;
-        RDFParserOutput dest = RDFParserOutputLib.dataset(dsg) ;
+        RDFParserOutput dest = RDFParserOutputLib.dataset(dataset) ;
         processQuads(dest, base, in, lang, null) ;
     }
 
@@ -298,45 +583,44 @@ public class WebReader2
      * @param base      Base URI
      * @param lang      Language syntax
      */
-    public static void read(Dataset dataset, StringReader in, String base, Lang2 lang)
+    public static void read(Dataset dataset, StringReader in, String base, Lang lang)
     {
-        DatasetGraph dsg = dataset.asDatasetGraph() ;
-        RDFParserOutput dest = RDFParserOutputLib.dataset(dsg) ;
+        read(dataset.asDatasetGraph(), in, base, lang) ;
+    }
+
+    /** Read quads into a dataset with chars from a StringReader.
+     * Use java.io.Readers is not encouraged - use with a StringReader is the primary use case.
+     * For files, open a {@link java.io.FileInputStream} to ensure correct character set handling.
+     * @param dataset   Destination
+     * @param in        InputStream
+     * @param base      Base URI
+     * @param lang      Language syntax
+     */
+    public static void read(DatasetGraph dataset, StringReader in, String base, Lang lang)
+    {
+        RDFParserOutput dest = RDFParserOutputLib.dataset(dataset) ;
         processQuads(dest, base, in, lang, null) ;
     }
 
-//    public static void addTripleSyntax(Lang2 language, ContentType contentType, ReaderRIOTFactory<Triple> factory, String ... fileExt )
-//    { 
-//        RDFLanguages.addTripleSyntax$(language, contentType, factory, fileExt) ;
-//    } 
-//    
-//    public static void addQuadSyntax(Lang2 language, ContentType contentType, ReaderRIOTFactory<Quad> factory, String ... fileExt )
-//    {
-//        RDFLanguages.addQuadSyntax$(language, contentType, factory, fileExt) ;
-//    }
-    
-    //{ParserOut]
-    // Add ParserOutput in public versionss.
-    
-    /** Read triples - send to a sink.
+    /** Read triples
      * @param sink     Destination for the RDF read.
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param hintLang  Hint for the syntax
      * @param context   Content object to control reading process.
      */
-    public static void readTriples(RDFParserOutput sink, String uri, Lang2 hintLang, Context context)
+    public static void readTriples(RDFParserOutput sink, String uri, Lang hintLang, Context context)
     {
         readTriples(sink, uri, uri, hintLang, context) ;
     }
     
-    /** Read triples - send to a sink.
+    /** Read triples.
      * @param sink     Destination for the RDF read.
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param base      Base URI (defaults to uri).
      * @param hintLang  Hint for the syntax
      * @param context   Content object to control reading process.
      */
-    public static void readTriples(RDFParserOutput sink, String uri, String base, Lang2 hintLang, Context context)
+    public static void readTriples(RDFParserOutput sink, String uri, String base, Lang hintLang, Context context)
     {
         TypedInputStream in = open(uri, context) ;
         if ( in == null )
@@ -347,31 +631,30 @@ public class WebReader2
         IO.close(in) ;
     }
     
-    /** Read quads - send to a sink.
+    /** Read quads.
      * @param sink     Destination for the RDF read.
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param hintLang  Hint for the syntax
      * @param context   Content object to control reading process.
      */
-    public static void readQuads(Sink<Quad> sink, String uri, Lang2 hintLang, Context context)
+    public static void readQuads(RDFParserOutput sink, String uri, Lang hintLang, Context context)
     {
         readQuads(sink, uri, uri, hintLang, context) ;
     }
 
-    /** Read quads - send to a sink.
+    /** Read quads,.
      * @param sink     Destination for the RDF read.
      * @param uri       URI to read from (includes file: and a plain file name).
      * @param base      Base URI (defaults to uri).
      * @param hintLang  Hint for the syntax
      * @param context   Content object to control reading process.
      */
-    public static void readQuads(Sink<Quad> sink, String uri, String base, Lang2 hintLang, Context context)
+    public static void readQuads(RDFParserOutput sink, String uri, String base, Lang hintLang, Context context)
     {
         TypedInputStream in = open(uri, context) ;
         if ( in == null )
             throw new RiotException("Not found: "+uri) ;
-        RDFParserOutput dest = RDFParserOutputLib.sinkQuads(sink) ;
-        processQuads(dest, base, in, hintLang, context) ;
+        processQuads(sink, base, in, hintLang, context) ;
         IO.close(in) ;
     }
 
@@ -425,25 +708,21 @@ public class WebReader2
     // We could have had two step design - ReaderFactory-ReaderInstance
     // no - put the bruden on complicated readers, not everyone. 
     
-    private static void processTriples(RDFParserOutput destination, String baseUri, TypedInputStream in, Lang2 hintLang, Context context)
+    private static void processTriples(RDFParserOutput destination, String baseUri, TypedInputStream in, Lang hintLang, Context context)
     {
         ContentType ct = determineCT(baseUri, in.getContentType(), hintLang ) ;
-        
         if ( ct == null )
             throw new RiotException("Failed to determine the triples content type: (URI="+baseUri+" : stream="+in.getContentType()+" : hint="+hintLang+")") ;
 
         ReaderRIOT reader = getReaderTriples(ct) ;
         if ( reader == null )
-        {
             throw new RiotException("No triples reader for content type: "+ct.getContentType()) ;
-        }
-        
         reader.read(in, baseUri, ct, destination, context) ;
     }
 
     private static ReaderRIOT getReaderTriples(ContentType ct)
     {
-        Lang2 lang = RDFLanguages.contentTypeToLang(ct) ;
+        Lang lang = RDFLanguages.contentTypeToLang(ct) ;
         ReaderRIOTFactory r = ParserRegistry.getFactoryTriples(lang) ;
         if ( r == null )
             return null ;
@@ -454,30 +733,31 @@ public class WebReader2
     
     // java.io.Readers are NOT preferred.
     @SuppressWarnings("deprecation")
-    private static void processTriples(RDFParserOutput output, String base, Reader in, Lang2 hintLang, Context context)
+    private static void processTriples(RDFParserOutput output, String base, Reader in, Lang lang, Context context)
     {
         // Not as good as from an InputStream - RDF/XML not supported 
-        ContentType ct = determineCT(base, null, hintLang) ;
+        //****
+        ContentType ct = determineCT(base, null, lang) ;
         if ( ct == null )
-            throw new RiotException("Failed to determine the triples content type: (URI="+base+" : hint="+hintLang+")") ;
-        
-        Tokenizer tokenizer =
-            RDFLanguages.RDFJSON.equals(hintLang)?
-                          new TokenizerJSON(PeekReader.make(in)) :   
-                          TokenizerFactory.makeTokenizer(in) ;
-        
-        if ( hintLang == null )
-            throw new RiotException("No language specificied") ;
-        Lang lang = RDFLanguages.convert(hintLang) ;
+            throw new RiotException("Failed to determine the triples content type: (URI="+base+" : hint="+lang+")") ;
         LangRIOT parser ;
-        if ( lang == Lang.RDFXML )
+        if ( lang == null )
+            throw new RiotException("No language specificied") ;
+
+        if ( RDFLanguages.sameLang(RDFLanguages.RDFXML, lang) )
             parser = LangRDFXML.create(in, base, base, ErrorHandlerFactory.errorHandlerStd, output) ;
         else
+        {
+            Tokenizer tokenizer =
+                RDFLanguages.RDFJSON.equals(lang)?
+                              new TokenizerJSON(PeekReader.make(in)) :   
+                              TokenizerFactory.makeTokenizer(in) ;
             parser = RiotReader.createParserTriples(tokenizer, lang, base, output) ;
+        }
         parser.parse() ;
     }
     
-    private static void processQuads(RDFParserOutput destination, String uri, TypedInputStream in, Lang2 hintLang, Context context)
+    private static void processQuads(RDFParserOutput destination, String uri, TypedInputStream in, Lang hintLang, Context context)
     {
         ContentType ct = determineCT(uri, in.getContentType(), hintLang ) ;
         if ( ct == null )
@@ -491,7 +771,7 @@ public class WebReader2
 
     private static ReaderRIOT getReaderQuads(ContentType ct)
     {
-        Lang2 lang = RDFLanguages.contentTypeToLang(ct) ;
+        Lang lang = RDFLanguages.contentTypeToLang(ct) ;
         ReaderRIOTFactory r = ParserRegistry.getFactoryQuads(lang) ;
         if ( r == null )
             return null ;
@@ -499,15 +779,14 @@ public class WebReader2
     }
     
     // java.io.Readers are NOT preferred.
-    private static void processQuads(RDFParserOutput dest, String base, Reader in, Lang2 hintLang, Context context)
+    private static void processQuads(RDFParserOutput dest, String base, Reader in, Lang hintLang, Context context)
     {
         Tokenizer tokenizer = TokenizerFactory.makeTokenizer(in) ;
-        Lang lang = RDFLanguages.convert(hintLang) ;
-        LangRIOT parser = RiotReader.createParserQuads(tokenizer, lang, base, dest) ;
+        LangRIOT parser = RiotReader.createParserQuads(tokenizer, hintLang, base, dest) ;
         parser.parse() ;
     }
 
-    private static ContentType determineCT(String target, String ctStr, Lang2 hintLang)
+    private static ContentType determineCT(String target, String ctStr, Lang hintLang)
     {
         boolean isTextPlain = WebContent.contentTypeTextPlain.equals(ctStr) ;
         

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFLanguages.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFLanguages.java?rev=1425325&r1=1425324&r2=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFLanguages.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFLanguages.java Sat Dec 22 17:52:26 2012
@@ -18,27 +18,30 @@
 
 package org.apache.jena.riot;
 
-import static org.openjena.riot.WebContent.contentTypeNQuads ;
-import static org.openjena.riot.WebContent.contentTypeNQuadsAlt1 ;
-import static org.openjena.riot.WebContent.contentTypeNQuadsAlt2 ;
-import static org.openjena.riot.WebContent.contentTypeNTriples ;
-import static org.openjena.riot.WebContent.contentTypeNTriplesAlt ;
-import static org.openjena.riot.WebContent.contentTypeRDFJSON ;
-import static org.openjena.riot.WebContent.contentTypeRDFXML ;
-import static org.openjena.riot.WebContent.contentTypeTriG ;
-import static org.openjena.riot.WebContent.contentTypeTriGAlt1 ;
-import static org.openjena.riot.WebContent.contentTypeTriGAlt2 ;
-import static org.openjena.riot.WebContent.contentTypeTurtle ;
-import static org.openjena.riot.WebContent.contentTypeTurtleAlt1 ;
-import static org.openjena.riot.WebContent.contentTypeTurtleAlt2 ;
+import static org.apache.jena.riot.WebContent.contentTypeN3 ;
+import static org.apache.jena.riot.WebContent.contentTypeN3Alt1 ;
+import static org.apache.jena.riot.WebContent.contentTypeN3Alt2 ;
+import static org.apache.jena.riot.WebContent.contentTypeNQuads ;
+import static org.apache.jena.riot.WebContent.contentTypeNQuadsAlt1 ;
+import static org.apache.jena.riot.WebContent.contentTypeNQuadsAlt2 ;
+import static org.apache.jena.riot.WebContent.contentTypeNTriples ;
+import static org.apache.jena.riot.WebContent.contentTypeNTriplesAlt ;
+import static org.apache.jena.riot.WebContent.contentTypeRDFJSON ;
+import static org.apache.jena.riot.WebContent.contentTypeRDFXML ;
+import static org.apache.jena.riot.WebContent.contentTypeTriG ;
+import static org.apache.jena.riot.WebContent.contentTypeTriGAlt1 ;
+import static org.apache.jena.riot.WebContent.contentTypeTriGAlt2 ;
+import static org.apache.jena.riot.WebContent.contentTypeTurtle ;
+import static org.apache.jena.riot.WebContent.contentTypeTurtleAlt1 ;
+import static org.apache.jena.riot.WebContent.contentTypeTurtleAlt2 ;
 
+import java.util.Collection ;
+import java.util.Collections ;
 import java.util.Locale ;
 import java.util.Map ;
 
 import org.apache.jena.atlas.lib.DS ;
 import org.apache.jena.atlas.web.ContentType ;
-import org.openjena.riot.Lang ;
-import org.openjena.riot.RiotException ;
 
 import com.hp.hpl.jena.util.FileUtils ;
 
@@ -57,41 +60,46 @@ public class RDFLanguages
     public static final String strLangTriG       = "TriG" ;
     
     /** RDF/XML */
-    public static final Lang2 RDFXML   = LangBuilder.create(strLangRDFXML, contentTypeRDFXML)
+    public static final Lang RDFXML   = LangBuilder.create(strLangRDFXML, contentTypeRDFXML)
                                                 .addAltNames("RDFXML", "RDF/XML-ABBREV", "RDFXML-ABBREV")
                                                 .addFileExtensions("rdf","owl","xml")
                                                 .build() ;
     
     /** Turtle */
-    public static final Lang2 Turtle   = LangBuilder.create(strLangTurtle, contentTypeTurtle)
+    public static final Lang Turtle   = LangBuilder.create(strLangTurtle, contentTypeTurtle)
                                                 .addAltNames("TTL")
                                                 .addAltContentTypes(contentTypeTurtleAlt1, contentTypeTurtleAlt2)
                                                 .addFileExtensions("ttl")
                                                 //.addFileExtensions("n3")
                                                 .build() ;
+    /** N3 (treat as Turtle) */
+    public static final Lang N3   = LangBuilder.create(strLangN3, contentTypeN3)
+                                                .addAltContentTypes(contentTypeN3, contentTypeN3Alt1, contentTypeN3Alt2)
+                                                .addFileExtensions("n3")
+                                                .build() ;
     
     /** N-Triples */
-    public static final Lang2 NTriples = LangBuilder.create(strLangNTriples, contentTypeNTriples)
-                                                .addAltNames("NT", "NTriples", "NTriple", "N-Triple")
+    public static final Lang NTriples = LangBuilder.create(strLangNTriples, contentTypeNTriples)
+                                                .addAltNames("NT", "NTriples", "NTriple", "N-Triple", "N-Triples")
                                                 .addAltContentTypes(contentTypeNTriplesAlt)
                                                 .addFileExtensions("nt")
                                                 .build() ;
 
     /** RDF/JSON (this is not JSON-LD) */
-    public static final Lang2 RDFJSON  = LangBuilder.create(strLangRDFJSON, contentTypeRDFJSON)
+    public static final Lang RDFJSON  = LangBuilder.create(strLangRDFJSON, contentTypeRDFJSON)
                                                 .addAltNames("RDFJSON")
                                                 .addFileExtensions("rj", "json")
                                                 .build() ;
     
     /** TriG */
-    public static final Lang2 TriG     = LangBuilder.create(strLangTriG, contentTypeTriG)
+    public static final Lang TriG     = LangBuilder.create(strLangTriG, contentTypeTriG)
                                                 .addAltContentTypes(contentTypeTriGAlt1, contentTypeTriGAlt2)
                                                 .addFileExtensions("trig")
                                                 .build() ;
     
     /** N-Quads */
-    public static final Lang2 NQuads   = LangBuilder.create(strLangNQuads, contentTypeNQuads)
-                                                .addAltNames("NQ", "NQuads", "NQuad", "N-Quad")   
+    public static final Lang NQuads   = LangBuilder.create(strLangNQuads, contentTypeNQuads)
+                                                .addAltNames("NQ", "NQuads", "NQuad", "N-Quad", "N-Quads")   
                                                 .addAltContentTypes(contentTypeNQuadsAlt1, contentTypeNQuadsAlt2)
                                                 .addFileExtensions("nq")
                                                 .build() ;
@@ -99,21 +107,34 @@ public class RDFLanguages
     // ---- Central registry
     
     /** Mapping of colloquial name to language */
-    private static Map<String, Lang2> mapLabelToLang                    = DS.map() ;
+    private static Map<String, Lang> mapLabelToLang                    = DS.map() ;
+    
+    // For testing mainly.
+    public static Collection<Lang> getRegisteredLanguages()     { return Collections.unmodifiableCollection(mapLabelToLang.values()); }
     
     /** Mapping of content type (main and alternatives) to language */  
-    private static Map<String, Lang2> mapContentTypeToLang              = DS.map() ;
+    private static Map<String, Lang> mapContentTypeToLang              = DS.map() ;
 
     /** Mapping of file extension to language */
-    private static Map<String, Lang2> mapFileExtToLang                  = DS.map() ;
+    private static Map<String, Lang> mapFileExtToLang                  = DS.map() ;
 
     // ----------------------
+    static { init() ; }
     private static boolean initialized = false ;
     public static synchronized void init ()
     {
         if ( initialized ) return ;
         initialized = true ;
         initStandard() ;
+        Lang.RDFXML = RDFLanguages.RDFXML ; 
+        Lang.NTRIPLES = RDFLanguages.NTriples ; 
+        Lang.N3 = RDFLanguages.N3 ; 
+        Lang.TURTLE = RDFLanguages.Turtle ; 
+        Lang.RDFJSON = RDFLanguages.RDFJSON ; 
+        Lang.NQUADS = RDFLanguages.NQuads ; 
+        Lang.TRIG = RDFLanguages.TriG ; 
+
+        
     }
     // ----------------------
     
@@ -129,7 +150,7 @@ public class RDFLanguages
     }
 
     /** Register a language.
-     * To create a {@link Lang2} object use {@link LangBuilder}.
+     * To create a {@link Lang} object use {@link LangBuilder}.
      * See also 
      * {@link ParserRegistry#registerLangTriples} and 
      * {@link ParserRegistry#registerLangQuads}
@@ -137,7 +158,7 @@ public class RDFLanguages
      * 
      * @see ParserRegistry
      */
-    public static void register(Lang2 lang)
+    public static void register(Lang lang)
     {
         if ( lang == null )
             throw new IllegalArgumentException("null for language") ;
@@ -159,12 +180,12 @@ public class RDFLanguages
         }
     }
 
-    private static void checkRegistration(Lang2 lang)
+    private static void checkRegistration(Lang lang)
     {
         if ( lang == null )
             return ;
         String label = canonicalKey(lang.getLabel()) ;
-        Lang2 lang2 = mapLabelToLang.get(label) ;
+        Lang lang2 = mapLabelToLang.get(label) ;
         if ( lang2 == null )
             return ;
         if ( lang.equals(lang2) )
@@ -191,7 +212,7 @@ public class RDFLanguages
      * of content types and file extensions. 
      */
     
-    public static void unregister(Lang2 lang)
+    public static void unregister(Lang lang)
     {
         if ( lang == null )
             throw new IllegalArgumentException("null for language") ;
@@ -205,12 +226,12 @@ public class RDFLanguages
             mapFileExtToLang.remove(canonicalKey(ext)) ;
     }
     
-    public static boolean isRegistered(Lang2 lang)
+    public static boolean isRegistered(Lang lang)
     {
         if ( lang == null )
             throw new IllegalArgumentException("null for language") ;
         String label = canonicalKey(lang.getLabel()) ;
-        Lang2 lang2 = mapLabelToLang.get(label) ;
+        Lang lang2 = mapLabelToLang.get(label) ;
         if ( lang2 == null )
             return false ;
         checkRegistration(lang) ;
@@ -218,35 +239,34 @@ public class RDFLanguages
     }
 
     /** return true if the language is registered with the triples parser factories */
-    public static boolean isTriples(Lang2 lang) { return ParserRegistry.isTriples(lang) ; }
+    public static boolean isTriples(Lang lang) { return ParserRegistry.isTriples(lang) ; }
     
     /** return true if the language is registered with the quads parser factories */
-    public static boolean isQuads(Lang2 lang)   { return ParserRegistry.isQuads(lang) ; }
+    public static boolean isQuads(Lang lang)   { return ParserRegistry.isQuads(lang) ; }
     
-    /** Map a content type (without charset) to a {@link Lang2} */
-    public static Lang2 contentTypeToLang(String contentType)
+    /** Map a content type (without charset) to a {@link Lang} */
+    public static Lang contentTypeToLang(String contentType)
     {
         String key = canonicalKey(contentType) ;
         return mapContentTypeToLang.get(key) ;
     }
 
-    /** Map a content type (without charset) to a {@link Lang2} */
-    public static Lang2 contentTypeToLang(ContentType ct)
+    /** Map a content type (without charset) to a {@link Lang} */
+    public static Lang contentTypeToLang(ContentType ct)
     {
         String key = canonicalKey(ct.getContentType()) ;
         return mapContentTypeToLang.get(key) ;
     }
 
-
-    /** Map a colloquial name (e.g. "Turtle") to a {@link Lang2} */
-    public static Lang2 shortnameToLang(String label)
+    /** Map a colloquial name (e.g. "Turtle") to a {@link Lang} */
+    public static Lang shortnameToLang(String label)
     {
         String key = canonicalKey(label) ;
         return mapLabelToLang.get(key) ;
     }
     
-    /** Try to map a file extension to a {@link Lang2}; return null on no registered mapping */
-    public static Lang2 fileExtToLang(String ext)
+    /** Try to map a file extension to a {@link Lang}; return null on no registered mapping */
+    public static Lang fileExtToLang(String ext)
     {
         if ( ext == null ) return null ;
         if ( ext.startsWith(".") ) 
@@ -255,21 +275,29 @@ public class RDFLanguages
         return mapFileExtToLang.get(ext) ;
     }
 
-    /** Try to map a file name to a {@link Lang2}; return null on no registered mapping */
-    public static Lang2 filenameToLang(String filename)
+    /** Try to map a file name to a {@link Lang}; return null on no registered mapping */
+    public static Lang filenameToLang(String filename)
     {
         return fileExtToLang(FileUtils.getFilenameExt(filename)) ;
     }
 
-    /** Turn a name for a language into a {@link Lang2} object.
+    /** Try to map a file name to a {@link Lang}; return null on no registered mapping */
+    public static Lang filenameToLang(String filename, Lang dftLang)
+    {
+        Lang lang = filenameToLang(filename) ;
+        return (lang == null) ? dftLang : lang ;
+    }
+
+
+    /** Turn a name for a language into a {@link Lang} object.
      *  The name can be a label, or a content type.
      */
-    public static Lang2 nameToLang(String langName)
+    public static Lang nameToLang(String langName)
     {
         if ( langName == null )
             return null ;
         
-        Lang2 lang = shortnameToLang(langName) ;
+        Lang lang = shortnameToLang(langName) ;
         if ( lang != null )
             return lang ;
         lang = contentTypeToLang(langName) ;
@@ -278,23 +306,11 @@ public class RDFLanguages
     
     static String canonicalKey(String x) { return x.toLowerCase(Locale.US) ; }
 
-    // TEMPORARY
-    public static Lang convert(Lang2 lang2)
-    {
-        if ( lang2 == RDFXML )      return Lang.RDFXML ;
-        if ( lang2 == Turtle )      return Lang.TURTLE ;
-        if ( lang2 == NTriples )    return Lang.NTRIPLES ;
-        if ( lang2 == RDFJSON )     return Lang.RDFJSON ;
-        if ( lang2 == TriG )        return Lang.TRIG ;
-        if ( lang2 == NQuads )      return Lang.NQUADS ;
-        throw new RiotException("No such language to convert: "+lang2) ;
-    }
-
     public static ContentType guessContentType(String resourceName)
     {
         if ( resourceName == null )
             return null ;
-        Lang2 lang = filenameToLang(resourceName) ;
+        Lang lang = filenameToLang(resourceName) ;
         if ( lang == null )
             return null ;
         return lang.getContentType() ;
@@ -304,5 +320,12 @@ public class RDFLanguages
     {
         throw new RiotException(message) ; 
     }
+
+    public static boolean sameLang(Lang lang1, Lang lang2)
+    {
+        if ( lang1 == null || lang2 == null ) return false ; 
+        if ( lang1 == lang2 ) return true ;
+        return lang1.getLabel() == lang2.getLabel() ;
+    }
 }
 

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFReaderFactoryRIOT.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFReaderFactoryRIOT.java?rev=1425325&r1=1425324&r2=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFReaderFactoryRIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFReaderFactoryRIOT.java Sat Dec 22 17:52:26 2012
@@ -38,7 +38,7 @@ public class RDFReaderFactoryRIOT implem
     {
         // If RDF/XML, then return an ARP 
         
-        Lang2 lang = RDFLanguages.nameToLang(langname) ;
+        Lang lang = RDFLanguages.nameToLang(langname) ;
         if ( RDFLanguages.RDFXML.equals(lang) )
             return new RDFReaderRIOT_ARP() ;
         return new RDFReaderRIOT(langname) ; 

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFReaderRIOT.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFReaderRIOT.java?rev=1425325&r1=1425324&r2=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFReaderRIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFReaderRIOT.java Sat Dec 22 17:52:26 2012
@@ -55,15 +55,15 @@ public class RDFReaderRIOT implements RD
     @SuppressWarnings("deprecation")
     @Override
     public void read(Model model, Reader r, String base)
-    { WebReader2.read(model, r, base, RDFLanguages.nameToLang(hintlang)) ; }
+    { RDFDataMgr.read(model, r, base, RDFLanguages.nameToLang(hintlang)) ; }
 
     @Override
     public void read(Model model, InputStream r, String base)
-    { WebReader2.read(model, r, base, RDFLanguages.nameToLang(hintlang)) ; }
+    { RDFDataMgr.read(model, r, base, RDFLanguages.nameToLang(hintlang)) ; }
     
     @Override
     public void read(Model model, String url)
-    { WebReader2.read(model, url, RDFLanguages.nameToLang(hintlang)) ; }
+    { RDFDataMgr.read(model, url, RDFLanguages.nameToLang(hintlang)) ; }
 
     @Override
     public Object setProperty(String propName, Object propValue)

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java (from r1422690, jena/trunk/jena-arq/src/main/java/org/openjena/riot/RIOT.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java&p1=jena/trunk/jena-arq/src/main/java/org/openjena/riot/RIOT.java&r1=1422690&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java Sat Dec 22 17:52:26 2012
@@ -16,10 +16,8 @@
  * limitations under the License.
  */
 
-package org.openjena.riot;
+package org.apache.jena.riot;
 
-import org.apache.jena.riot.ParserRegistry ;
-import org.apache.jena.riot.RDFLanguages ;
 
 import com.hp.hpl.jena.query.ARQ ;
 import com.hp.hpl.jena.sparql.SystemARQ ;
@@ -40,16 +38,6 @@ public class RIOT
     public static final String VERSION = "ARQ/"+ARQ.VERSION ;
     public static final String BUILD_DATE = ARQ.BUILD_DATE ;
     
-//    static private String metadataLocation = "com/hp/hpl/jena/sparql/arq-properties.xml" ;
-//
-//    static private Metadata metadata = new Metadata(metadataLocation) ;
-//    
-//    /** The full name of the current version */   
-//    public static final String VERSION = metadata.get(PATH+".version", "unset") ;
-//   
-//    /** The date and time at which this release was built */   
-//    public static final String BUILD_DATE = metadata.get(PATH+".build.datetime", "unset") ;
-    
     public static void setStrictMode(boolean state)
     {
         SysRIOT.strictMode = state ;
@@ -69,7 +57,6 @@ public class RIOT
         
         RDFLanguages.init() ;
         ParserRegistry.init() ;
-        
-        SysRIOT.wireIntoJena() ;
+        IO_Jena.wireIntoJena() ;
     }
 }

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOTBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOTBase.java?rev=1425325&r1=1425324&r2=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOTBase.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOTBase.java Sat Dec 22 17:52:26 2012
@@ -30,10 +30,10 @@ public abstract class ReaderRIOTBase imp
     @Override
     public void read(InputStream in, String baseURI, ContentType ct, RDFParserOutput output, Context context)
     {
-        Lang2 lang = RDFLanguages.contentTypeToLang(ct) ;
+        Lang lang = RDFLanguages.contentTypeToLang(ct) ;
         read(in, baseURI,lang, output, context) ;
     }
 
-    public abstract void read(InputStream in, String baseURI, Lang2 lang, RDFParserOutput output, Context context) ;
+    public abstract void read(InputStream in, String baseURI, Lang lang, RDFParserOutput output, Context context) ;
 }
 

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOTFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOTFactory.java?rev=1425325&r1=1425324&r2=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOTFactory.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOTFactory.java Sat Dec 22 17:52:26 2012
@@ -20,5 +20,5 @@ package org.apache.jena.riot;
 
 public interface ReaderRIOTFactory
 {
-    public ReaderRIOT create(Lang2 language) ;
+    public ReaderRIOT create(Lang language) ;
 }

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotException.java (from r1422690, jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotException.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotException.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotException.java&p1=jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotException.java&r1=1422690&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotException.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotException.java Sat Dec 22 17:52:26 2012
@@ -16,9 +16,12 @@
  * limitations under the License.
  */
 
-package org.openjena.riot;
+package org.apache.jena.riot;
 
-public class RiotException extends RuntimeException
+
+// Compatibility
+@SuppressWarnings("deprecation")
+public class RiotException extends org.openjena.riot.RiotException //extends JenaException
 {
     public RiotException()                          { super() ; }
     public RiotException(String msg)                { super(msg) ; }

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotNotFoundException.java (from r1422690, jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotNotFoundException.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotNotFoundException.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotNotFoundException.java&p1=jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotNotFoundException.java&r1=1422690&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotNotFoundException.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotNotFoundException.java Sat Dec 22 17:52:26 2012
@@ -16,9 +16,10 @@
  * limitations under the License.
  */
 
-package org.openjena.riot;
+package org.apache.jena.riot;
 
-public class RiotNotFoundException extends RiotException
+@SuppressWarnings("deprecation")
+public class RiotNotFoundException extends org.openjena.riot.RiotNotFoundException //extends RiotException
 {
     public RiotNotFoundException()                          { super() ; }
     public RiotNotFoundException(String msg)                { super(msg) ; }

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotParseException.java (from r1422690, jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotParseException.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotParseException.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotParseException.java&p1=jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotParseException.java&r1=1422690&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotParseException.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotParseException.java Sat Dec 22 17:52:26 2012
@@ -16,23 +16,20 @@
  * limitations under the License.
  */
 
-package org.openjena.riot;
+package org.apache.jena.riot;
 
-public class RiotParseException extends RiotException
+@SuppressWarnings("deprecation")
+public class RiotParseException extends org.openjena.riot.RiotParseException
 {
-    final private long line ;
-    final private long column ;
-    final private String message ;
-
     public RiotParseException(String msg, long line, long column)
     {
-        super(SysRIOT.fmtMessage(msg,line,column)); 
-        this.message = msg ; 
-        this.line = line ;
-        this.column = column ;
+        super(msg, line, column); 
     }
     
-    public long getLine()   { return line ; }
-    public long getCol()    { return column ; }
-    public String getOriginalMessage()    { return message ; }
+    @Override
+    public long getLine()   { return super.getLine() ; }
+    @Override
+    public long getCol()    { return super.getCol() ; }
+    @Override
+    public String getOriginalMessage()    { return super.getOriginalMessage() ; }
 }

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java (from r1422690, jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotReader.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java&p1=jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotReader.java&r1=1422690&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotReader.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java Sat Dec 22 17:52:26 2012
@@ -16,12 +16,9 @@
  * limitations under the License.
  */
 
-package org.openjena.riot;
+package org.apache.jena.riot;
 
-import static org.openjena.riot.Lang.NQUADS ;
-import static org.openjena.riot.Lang.NTRIPLES ;
-import static org.openjena.riot.Lang.RDFJSON ;
-import static org.openjena.riot.Lang.RDFXML ;
+import static org.apache.jena.riot.RDFLanguages.* ;
 
 import java.io.InputStream ;
 import java.util.Iterator ;
@@ -32,12 +29,14 @@ import org.apache.jena.atlas.iterator.It
 import org.apache.jena.atlas.json.io.parser.TokenizerJSON ;
 import org.apache.jena.atlas.lib.IRILib ;
 import org.apache.jena.atlas.lib.Sink ;
-import org.apache.jena.riot.WebReader2 ;
 import org.apache.jena.riot.lang.* ;
+import org.apache.jena.riot.system.ErrorHandlerFactory ;
 import org.apache.jena.riot.system.IRIResolver ;
 import org.apache.jena.riot.system.RiotLib ;
 import org.apache.jena.riot.tokens.Tokenizer ;
 import org.apache.jena.riot.tokens.TokenizerFactory ;
+import org.openjena.riot.RiotQuadParsePuller ;
+import org.openjena.riot.RiotTripleParsePuller ;
 
 import com.hp.hpl.jena.graph.Triple ;
 import com.hp.hpl.jena.sparql.core.Quad ;
@@ -45,7 +44,7 @@ import com.hp.hpl.jena.sparql.core.Quad 
 /** Operations to access RIOT parsers and send the output to 
  *  a ParserOutput (triples or quads as appropriate).
  *  Operations to send to a sink (special case of a ParserOutput).
- *  @see WebReader2 for reading from a location, including web access and content negotation.   
+ *  @see RDFDataMgr for reading from a location, including web access and content negotation.   
  */
 public class RiotReader
 {
@@ -53,7 +52,7 @@ public class RiotReader
      * Must be in a triples syntax.
      * @param filename 
      * @param sink  Where to send the triples from the parser.
-     * @see      WebReader2#readTriples
+     * @see      RDFDataMgr#readTriples
      */  
     public static void parseTriples(String filename, Sink<Triple> sink)
     { parseTriples(filename, null, null, sink) ; }
@@ -64,20 +63,12 @@ public class RiotReader
      * @param lang      Language, or null for "guess from URL" (e.g. file extension)
      * @param baseIRI   Base IRI, or null for based on input filename
      * @param sink      Where to send the triples from the parser.
-     * @see     WebReader2#readTriples
+     * @see     RDFDataMgr#readTriples
      */  
     public static void parseTriples(String filename, Lang lang, String baseIRI, Sink<Triple> sink)
     {
-        checkTriplesLanguage(filename, lang) ;
-
-        InputStream in = IO.openFile(filename) ; 
-        String base = chooseBaseIRI(baseIRI, filename) ;
-
-        if ( lang == null )
-            lang = Lang.guess(filename, NTRIPLES) ;     // ** N-Triples
-        
-        parseTriples(in, lang, base, sink) ;
-        IO.close(in) ;
+        RDFParserOutput dest = RDFParserOutputLib.sinkTriples(sink) ;
+        parseTriples(filename, lang, baseIRI, dest) ;
     }
 
     /** Parse an InputStream, sending triples to a sink.
@@ -85,13 +76,12 @@ public class RiotReader
      * @param lang      Language.
      * @param baseIRI   Base IRI. 
      * @param sink      Where to send the triples from the parser.
-     * @see             WebReader2#readTriples
+     * @see             RDFDataMgr#readTriples
      */  
     public static void parseTriples(InputStream in, Lang lang, String baseIRI, Sink<Triple> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkTriples(sink) ;
-        LangRIOT parser = RiotReader.createParserTriples(in, lang, baseIRI, dest) ;
-        parser.parse() ;
+        parseTriples(in, lang, baseIRI, dest) ;
     }
     
     // -------- Quads
@@ -99,7 +89,7 @@ public class RiotReader
     /** Parse a file, sending quads to a sink.
      * @param filename
      * @param sink  Where to send the quads from the parser.
-     * @see          WebReader2#readQuads
+     * @see          RDFDataMgr#readQuads
      */
     public static void parseQuads(String filename, Sink<Quad> sink)
     { parseQuads(filename, null, null, sink) ; }
@@ -109,16 +99,12 @@ public class RiotReader
      * @param lang      Language, or null for "guess from filename" (e.g. extension)
      * @param baseIRI   Base IRI, or null for base on input filename
      * @param sink      Where to send the quads from the parser.
-     * @see             WebReader2#readQuads
+     * @see             RDFDataMgr#readQuads
      */
     public static void parseQuads(String filename, Lang lang, String baseIRI, Sink<Quad> sink)
     {
-        InputStream in = IO.openFile(filename) ; 
-        String base = chooseBaseIRI(baseIRI, filename) ;
-        if ( lang == null )
-            lang = Lang.guess(filename, NQUADS) ;     // ** N-Quads
-        parseQuads(in, lang, base, sink) ;
-        IO.close(in) ;
+        RDFParserOutput dest = RDFParserOutputLib.sinkQuads(sink) ;
+        parseQuads(filename, lang, baseIRI, dest) ;
     }
 
     /** Parse an InputStream, sending quads to a sink.
@@ -126,13 +112,12 @@ public class RiotReader
      * @param lang      Language.
      * @param baseIRI   Base IRI. 
      * @param sink      Where to send the quads from the parser.
-     * @see              WebReader2#readQuads
+     * @see              RDFDataMgr#readQuads
      */
     public static void parseQuads(InputStream in, Lang lang, String baseIRI, Sink<Quad> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkQuads(sink) ;
-        LangRIOT parser = RiotReader.createParserQuads(in, lang, baseIRI, dest) ;
-        parser.parse() ;
+        parseQuads(in, lang, baseIRI, dest) ;
     }
 
     /** Parse a file, sending triples to a sink.
@@ -152,22 +137,23 @@ public class RiotReader
      */  
     public static void parseTriples(String filename, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        checkTriplesLanguage(filename, lang) ;
-
+        if ( lang == null )
+            lang = filenameToLang(filename, NTriples) ;
+        
+        if ( ! RDFLanguages.isTriples(lang) )
+            throw new RiotException("Not a triples language: "+lang.getName()) ; 
+        
         InputStream in = IO.openFile(filename) ; 
         String base = chooseBaseIRI(baseIRI, filename) ;
 
-        if ( lang == null )
-            lang = Lang.guess(filename, NTRIPLES) ;     // ** N-Triples
-        
-        if ( lang == RDFXML )
+        if ( RDFXML.equals(lang) )
         {
             // Fudge to make the bulk loader process RDF/XML files.
             LangRDFXML.create(in, base, filename, ErrorHandlerFactory.getDefaultErrorHandler(), dest).parse() ;
             IO.close(in) ;
             return ;
         }
-        
+
         parseTriples(in, lang, base, dest) ;
         IO.close(in) ;
     }
@@ -205,7 +191,7 @@ public class RiotReader
         InputStream in = IO.openFile(filename) ; 
         String base = chooseBaseIRI(baseIRI, filename) ;
         if ( lang == null )
-            lang = Lang.guess(filename, NQUADS) ;     // ** N-Quads
+            lang = filenameToLang(filename, NQuads) ;     // ** N-Quads
         parseQuads(in, lang, base, dest) ;
         IO.close(in) ;
     }
@@ -242,22 +228,17 @@ public class RiotReader
     /** Create a parser for a triples language */  
     public static LangRIOT createParserTriples(Tokenizer tokenizer, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        switch (lang)
-        {
-            case N3 :
-            case TURTLE :
+        if ( RDFLanguages.sameLang(RDFXML, lang) )
+            throw new RiotException("Not possible - can't parse RDF/XML from a RIOT token stream") ;
+        if ( RDFLanguages.sameLang(Turtle, lang) || RDFLanguages.sameLang(N3,  lang) ) 
                 return createParserTurtle(tokenizer, baseIRI, dest) ;
-            case NTRIPLES :
+        if ( RDFLanguages.sameLang(NTriples, lang) )
                 return createParserNTriples(tokenizer, dest) ;
-            case RDFJSON :
+        if ( RDFLanguages.sameLang(RDFJSON, lang) )
                 // But it must be a JSON tokenizer ...
-            	return createParserRdfJson(tokenizer, dest) ;
-            case RDFXML :
-                throw new RiotException("Not possible - can't parse RDF/XML from a RIOT token stream") ;
-            case NQUADS :
-            case TRIG :
-                throw new RiotException("Not a triples language: "+lang) ;
-        }
+            return createParserRdfJson(tokenizer, dest) ;
+        if ( RDFLanguages.sameLang(NQuads, lang) || RDFLanguages.sameLang(TriG, lang) )
+            throw new RiotException("Not a triples language: "+lang) ;
         return null ;
     }
     
@@ -265,7 +246,7 @@ public class RiotReader
     public static Iterator<Triple> createIteratorTriples(InputStream input, Lang lang, String baseIRI)
     {
         // Special case N-Triples, because the RIOT reader has a pull interface
-        if (lang == Lang.NTRIPLES)
+        if ( RDFLanguages.sameLang(RDFLanguages.NTriples, lang) )
         {
             return new IteratorResourceClosing<Triple>(createParserNTriples(input, null), input);
         }
@@ -288,28 +269,21 @@ public class RiotReader
     /** Create a parser for a quads language */  
     public static LangRIOT createParserQuads(Tokenizer tokenizer, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        switch (lang)
-        {
-            case NTRIPLES : // Or move N-Triples just go through N-Quads. 
-            case N3 :
-            case TURTLE :
-            case RDFXML :
-            case RDFJSON :
-                dest = RDFParserOutputLib.extendTriplesToQuads(dest) ;
-                return createParserTriples(tokenizer, lang, baseIRI, dest) ;
-            case NQUADS :
-                return createParserNQuads(tokenizer, dest) ;
-            case TRIG :
-                return createParserTriG(tokenizer, baseIRI, dest) ;
-        }
-        return null ;
+        if ( RDFLanguages.sameLang(NQuads, lang) )
+            return createParserNQuads(tokenizer, dest) ;
+        if ( RDFLanguages.sameLang(TriG, lang) )
+            return createParserTriG(tokenizer, baseIRI, dest) ;
+
+        // try to do via triples to quads extension. 
+        dest = RDFParserOutputLib.extendTriplesToQuads(dest) ;
+        return createParserTriples(tokenizer, lang, baseIRI, dest) ;
     }
     
     // TODO create a Tokenizer version of this method
     public static Iterator<Quad> createIteratorQuads(InputStream input, Lang lang, String baseIRI)
     {
         // Special case N-Quads, because the RIOT reader has a pull interface
-        if (lang == Lang.NTRIPLES)
+        if (  RDFLanguages.sameLang(RDFLanguages.NTriples, lang) )
         {
             return new IteratorResourceClosing<Quad>(createParserNQuads(input, null), input);
         }
@@ -332,7 +306,7 @@ public class RiotReader
     /** Create a parser for Turtle, with default behaviour */
     public static LangTurtle createParserTurtle(Tokenizer tokenizer, String baseIRI, RDFParserOutput dest)
     {
-        LangTurtle parser = new LangTurtle(tokenizer, RiotLib.profile(Lang.TURTLE, baseIRI), dest) ;
+        LangTurtle parser = new LangTurtle(tokenizer, RiotLib.profile(RDFLanguages.Turtle, baseIRI), dest) ;
         return parser ;
     }
 
@@ -348,7 +322,7 @@ public class RiotReader
     /** Create parsers for RDF/JSON */
     public static LangRDFJSON createParserRdfJson(Tokenizer tokenizer, RDFParserOutput dest)
     {
-    	LangRDFJSON parser = new LangRDFJSON(tokenizer, RiotLib.profile(Lang.RDFJSON, null), dest) ;
+    	LangRDFJSON parser = new LangRDFJSON(tokenizer, RiotLib.profile(RDFLanguages.RDFJSON, null), dest) ;
     	return parser;
     }
 
@@ -370,7 +344,7 @@ public class RiotReader
     {
         if ( baseIRI == null )
             baseIRI = chooseBaseIRI() ;
-        LangTriG parser = new LangTriG(tokenizer, RiotLib.profile(Lang.TRIG, baseIRI), dest) ;
+        LangTriG parser = new LangTriG(tokenizer, RiotLib.profile(RDFLanguages.TriG, baseIRI), dest) ;
         return parser ;
     }
 
@@ -384,7 +358,7 @@ public class RiotReader
     /** Create a parser for N-Triples, with default behaviour */
     public static LangNTriples createParserNTriples(Tokenizer tokenizer, RDFParserOutput dest)
     {
-        LangNTriples parser = new LangNTriples(tokenizer, RiotLib.profile(Lang.NTRIPLES, null), dest) ;
+        LangNTriples parser = new LangNTriples(tokenizer, RiotLib.profile(RDFLanguages.NTriples, null), dest) ;
         return parser ;
     }
     
@@ -398,7 +372,7 @@ public class RiotReader
     /** Create a parser for NQuads, with default behaviour */
     public static LangNQuads createParserNQuads(Tokenizer tokenizer, RDFParserOutput dest)
     {
-        LangNQuads parser = new LangNQuads(tokenizer, RiotLib.profile(Lang.NQUADS, null), dest) ;
+        LangNQuads parser = new LangNQuads(tokenizer, RiotLib.profile(RDFLanguages.NQuads, null), dest) ;
         return parser ;
     }
     
@@ -409,6 +383,21 @@ public class RiotReader
     
     public static String chooseBaseIRI(String baseIRI, String filename)
     {
+//      private static void checkTriplesLanguage(String filename, Lang2 lang)
+//      {
+//          
+//          
+//          if ( lang != null )
+//          {
+//              if ( ! lang.isTriples() )
+//                  throw new RiotException("Can only parse triples languages to a triples sink: "+lang.getName()) ;
+//              return ;
+//          }
+  //    
+//          lang = filenameToLang(filename) ;
+//          if ( lang != null && ! lang.isTriples() )
+//      }
+
         if ( baseIRI != null )
             return baseIRI ;
         if ( filename == null || filename.equals("-") )
@@ -423,20 +412,5 @@ public class RiotReader
             return "stdin" ;
         return filename ;
     }
-
-    private static void checkTriplesLanguage(String filename, Lang lang)
-    {
-        if ( lang != null )
-        {
-            if ( ! lang.isTriples() )
-                throw new RiotException("Can only parse triples languages to a triples sink: "+lang.getName()) ;
-            return ;
-        }
-    
-        lang = Lang.guess(filename) ;
-        if ( lang != null && ! lang.isTriples() )
-            throw new RiotException("Can only parse triples languages to a triples sink: "+lang.getName()) ; 
-    }
-    
         
 }

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotWriter.java (from r1422690, jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotWriter.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotWriter.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotWriter.java&p1=jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotWriter.java&r1=1422690&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotWriter.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotWriter.java Sat Dec 22 17:52:26 2012
@@ -16,14 +16,14 @@
  * limitations under the License.
  */
 
-package org.openjena.riot;
+package org.apache.jena.riot;
 
 import java.io.OutputStream ;
 import java.util.Iterator ;
 
-import org.openjena.riot.out.NQuadsWriter ;
-import org.openjena.riot.out.NTriplesWriter ;
-import org.openjena.riot.out.RDFJSONWriter ;
+import org.apache.jena.riot.out.NQuadsWriter ;
+import org.apache.jena.riot.out.NTriplesWriter ;
+import org.apache.jena.riot.out.RDFJSONWriter ;
 
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.graph.Triple ;

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java (from r1422690, jena/trunk/jena-arq/src/main/java/org/openjena/riot/SysRIOT.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java&p1=jena/trunk/jena-arq/src/main/java/org/openjena/riot/SysRIOT.java&r1=1422690&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/SysRIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java Sat Dec 22 17:52:26 2012
@@ -16,15 +16,14 @@
  * limitations under the License.
  */
 
-package org.openjena.riot;
+package org.apache.jena.riot;
 
-import org.apache.jena.riot.IO_Jena ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
 
 public class SysRIOT
 {
-    public static final String riotLoggerName = "org.openjena.riot" ;
+    public static final String riotLoggerName = "org.apache.jena.riot" ;
     private static Logger riotLogger = LoggerFactory.getLogger(riotLoggerName) ;
     
     public static boolean StrictXSDLexicialForms = false ;
@@ -49,15 +48,15 @@ public class SysRIOT
         return riotLogger ;
     }
     
-    public static void wireIntoJena()
-    {
-        RIOT.init() ;
-        IO_Jena.wireIntoJena() ;
-    }
-    
-    public static void resetJenaReaders()
-    {
-        IO_Jena.resetJenaReaders() ;
-    }
+//    public static void wireIntoJena()
+//    {
+//        RIOT.init() ;
+//        IO_Jena.wireIntoJena() ;
+//    }
+//    
+//    public static void resetJenaReaders()
+//    {
+//        IO_Jena.resetJenaReaders() ;
+//    }
 
 }

Copied: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/WebContent.java (from r1422690, jena/trunk/jena-arq/src/main/java/org/openjena/riot/WebContent.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/WebContent.java?p2=jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/WebContent.java&p1=jena/trunk/jena-arq/src/main/java/org/openjena/riot/WebContent.java&r1=1422690&r2=1425325&rev=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/WebContent.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/WebContent.java Sat Dec 22 17:52:26 2012
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package org.openjena.riot;
+package org.apache.jena.riot;
 
 import java.util.HashMap ;
 import java.util.Map ;
@@ -104,23 +104,23 @@ public class WebContent
     private static Map<String, Lang> mapContentTypeToLang = new HashMap<String, Lang>() ;
     static {
         // Or is code preferrable?
-        mapContentTypeToLang.put(contentTypeRDFXML,         Lang.RDFXML) ;
-        mapContentTypeToLang.put(contentTypeN3,             Lang.N3);
-        mapContentTypeToLang.put(contentTypeN3Alt1,         Lang.N3);
-        mapContentTypeToLang.put(contentTypeN3Alt2,         Lang.N3);
-        mapContentTypeToLang.put(contentTypeTurtle,         Lang.TURTLE) ;
-        mapContentTypeToLang.put(contentTypeTurtleAlt1,     Lang.TURTLE) ;
-        mapContentTypeToLang.put(contentTypeTurtleAlt2,     Lang.TURTLE) ;
-        mapContentTypeToLang.put(contentTypeNTriples,       Lang.NTRIPLES) ;   // text/plain
-        mapContentTypeToLang.put(contentTypeNTriplesAlt,    Lang.NTRIPLES) ;
-        mapContentTypeToLang.put(contentTypeRdfJson,		Lang.RDFJSON) ;
-
-        mapContentTypeToLang.put(contentTypeNQuads,         Lang.NQUADS) ;
-        mapContentTypeToLang.put(contentTypeNQuadsAlt1,     Lang.NQUADS) ;
-        mapContentTypeToLang.put(contentTypeNQuadsAlt2,     Lang.NQUADS) ;
-        mapContentTypeToLang.put(contentTypeTriG,           Lang.TRIG) ;
-        mapContentTypeToLang.put(contentTypeTriGAlt1,       Lang.TRIG) ;
-        mapContentTypeToLang.put(contentTypeTriGAlt2,       Lang.TRIG) ;
+        mapContentTypeToLang.put(contentTypeRDFXML,         RDFLanguages.RDFXML) ;
+        mapContentTypeToLang.put(contentTypeN3,             RDFLanguages.N3);
+        mapContentTypeToLang.put(contentTypeN3Alt1,         RDFLanguages.N3);
+        mapContentTypeToLang.put(contentTypeN3Alt2,         RDFLanguages.N3);
+        mapContentTypeToLang.put(contentTypeTurtle,         RDFLanguages.Turtle) ;
+        mapContentTypeToLang.put(contentTypeTurtleAlt1,     RDFLanguages.Turtle) ;
+        mapContentTypeToLang.put(contentTypeTurtleAlt2,     RDFLanguages.Turtle) ;
+        mapContentTypeToLang.put(contentTypeNTriples,       RDFLanguages.NTriples) ;   // text/plain
+        mapContentTypeToLang.put(contentTypeNTriplesAlt,    RDFLanguages.NTriples) ;
+        mapContentTypeToLang.put(contentTypeRdfJson,        RDFLanguages.RDFJSON) ;
+
+        mapContentTypeToLang.put(contentTypeNQuads,         RDFLanguages.NQuads) ;
+        mapContentTypeToLang.put(contentTypeNQuadsAlt1,     RDFLanguages.NQuads) ;
+        mapContentTypeToLang.put(contentTypeNQuadsAlt2,     RDFLanguages.NQuads) ;
+        mapContentTypeToLang.put(contentTypeTriG,           RDFLanguages.TriG) ;
+        mapContentTypeToLang.put(contentTypeTriGAlt1,       RDFLanguages.TriG) ;
+        mapContentTypeToLang.put(contentTypeTriGAlt2,       RDFLanguages.TriG) ;
         
     }
     
@@ -140,14 +140,14 @@ public class WebContent
     /** Canonical names */
     private static Map<Lang, String> mapLangToContentType =  new HashMap<Lang, String>() ;
     static {
-        mapLangToContentType.put(Lang.N3,           contentTypeN3) ;
-        mapLangToContentType.put(Lang.TURTLE,       contentTypeTurtle) ;
-        mapLangToContentType.put(Lang.NTRIPLES,     contentTypeNTriples) ;
-        mapLangToContentType.put(Lang.RDFXML,       contentTypeRDFXML) ;
-        mapLangToContentType.put(Lang.RDFJSON,		contentTypeRdfJson) ;
+        mapLangToContentType.put(RDFLanguages.N3,           contentTypeN3) ;
+        mapLangToContentType.put(RDFLanguages.Turtle,       contentTypeTurtle) ;
+        mapLangToContentType.put(RDFLanguages.NTriples,     contentTypeNTriples) ;
+        mapLangToContentType.put(RDFLanguages.RDFXML,       contentTypeRDFXML) ;
+        mapLangToContentType.put(RDFLanguages.RDFJSON,		contentTypeRdfJson) ;
         
-        mapLangToContentType.put(Lang.NQUADS,       contentTypeNQuads) ;
-        mapLangToContentType.put(Lang.TRIG,         contentTypeTriG) ;
+        mapLangToContentType.put(RDFLanguages.NQuads,       contentTypeNQuads) ;
+        mapLangToContentType.put(RDFLanguages.TriG,         contentTypeTriG) ;
     }
     public static String mapLangToContentType(Lang lang) { return mapLangToContentType.get(lang) ; }
     

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLib.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLib.java?rev=1425325&r1=1425324&r2=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLib.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLib.java Sat Dec 22 17:52:26 2012
@@ -21,8 +21,8 @@ package org.apache.jena.riot.adapters;
 import java.util.Iterator ;
 
 import org.apache.jena.atlas.web.TypedInputStream ;
+import org.apache.jena.riot.RiotException ;
 import org.apache.jena.riot.stream.* ;
-import org.openjena.riot.RiotException ;
 
 import com.hp.hpl.jena.sparql.util.Utils ;
 

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerBlankNodes.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerBlankNodes.java?rev=1425325&r1=1425324&r2=1425325&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerBlankNodes.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerBlankNodes.java Sat Dec 22 17:52:26 2012
@@ -18,7 +18,7 @@
 
 package org.apache.jena.riot.checker;
 
-import org.openjena.riot.ErrorHandler ;
+import org.apache.jena.riot.system.ErrorHandler ;
 
 import com.hp.hpl.jena.graph.Node ;