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/26 23:48:39 UTC

svn commit: r1426079 - in /jena/trunk/jena-arq: src-examples/arq/examples/riot/ src/main/java/org/apache/jena/riot/ src/main/java/org/openjena/riot/ src/main/java/riotcmd/

Author: andy
Date: Wed Dec 26 22:48:38 2012
New Revision: 1426079

URL: http://svn.apache.org/viewvc?rev=1426079&view=rev
Log:
Unify base technology around parsing either triples or quads as found, not fixed up-front by the call.

Modified:
    jena/trunk/jena-arq/src-examples/arq/examples/riot/ExRIOT_2.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ParserRegistry.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFLanguages.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java
    jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotQuadParsePuller.java
    jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotReader.java
    jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotTripleParsePuller.java
    jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java
    jena/trunk/jena-arq/src/main/java/riotcmd/infer.java

Modified: jena/trunk/jena-arq/src-examples/arq/examples/riot/ExRIOT_2.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src-examples/arq/examples/riot/ExRIOT_2.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src-examples/arq/examples/riot/ExRIOT_2.java (original)
+++ jena/trunk/jena-arq/src-examples/arq/examples/riot/ExRIOT_2.java Wed Dec 26 22:48:38 2012
@@ -55,7 +55,7 @@ public class ExRIOT_2
         // RIOT controls the conversion from bytes to java chars.
         InputStream in = new FileInputStream("data.trig") ;
         
-        RiotReader.parseQuads(in, RDFLanguages.TriG, "http://example/base", noWhere) ;
+        RiotReader.parse(in, RDFLanguages.TriG, "http://example/base", noWhere) ;
         
         // --- Or create a parser and do the parsing as separate steps.
         String baseURI = "http://example/base" ;
@@ -63,7 +63,7 @@ public class ExRIOT_2
         // It is always better to use an  InputStream, rather than a Java Reader.
         // The parsers will do the necessary character set conversion.  
         in = new FileInputStream("data.trig") ;
-        LangRIOT parser = RiotReader.createParserQuads(in, RDFLanguages.TriG, "http://example/base", noWhere) ;
+        LangRIOT parser = RiotReader.createParser(in, RDFLanguages.TriG, "http://example/base", noWhere) ;
         
         // Parser to first error or warning.
         ErrorHandler errHandler = ErrorHandlerFactory.errorHandlerStrict ;

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ParserRegistry.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ParserRegistry.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ParserRegistry.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/ParserRegistry.java Wed Dec 26 22:48:38 2012
@@ -27,6 +27,7 @@ import static org.apache.jena.riot.RDFLa
 
 import java.io.InputStream ;
 import java.util.Map ;
+import java.util.Set ;
 
 import org.apache.jena.atlas.lib.DS ;
 import org.apache.jena.atlas.web.ContentType ;
@@ -47,16 +48,17 @@ public class ParserRegistry
     /** Map Jena I/O names to language */
     private static Map<String, Lang> mapJenaNameToLang                 = DS.map() ;
 
-    /** map language to a triples parser */ 
-    private static Map<Lang, ReaderRIOTFactory> langToTriples  = DS.map() ;
-    /** map language to a quads parser */ 
-    private static Map<Lang, ReaderRIOTFactory> langToQuads      = DS.map() ;
+    /** map language to a parser factory */ 
+    private static Map<Lang, ReaderRIOTFactory> langToParserFactory  = DS.map() ;
+    
+    /** Known triples languages */
+    private static Set<Lang> langTriples  = DS.set() ;
 
-    /** Triples : Generic parser factory. */
-    private static ReaderRIOTFactory pfTriples = new ReaderRIOTFactoryTriple() ;
+    /** Known quads languages */
+    private static Set<Lang> langQuads    = DS.set() ;
 
-    /** Quads : Generic parser factory. */
-    private static ReaderRIOTFactory pfQuads = new ReaderRIOTFactoryQuads() ;
+    /** Generic parser factory. */
+    private static ReaderRIOTFactory parserFactory = new ReaderRIOTFactoryImpl() ;
 
     private static boolean initialized = false ;
     public static synchronized void init ()
@@ -96,13 +98,13 @@ public class ParserRegistry
             
         registerShortNameForLang("TRIG",            TriG) ;
         
-        registerLangTriples(RDFXML,     pfTriples) ;
-        registerLangTriples(NTriples,   pfTriples) ;
-        registerLangTriples(Turtle,     pfTriples) ;
-        registerLangTriples(RDFJSON,    pfTriples) ;
+        registerLangTriples(RDFXML,     parserFactory) ;
+        registerLangTriples(NTriples,   parserFactory) ;
+        registerLangTriples(Turtle,     parserFactory) ;
+        registerLangTriples(RDFJSON,    parserFactory) ;
         
-        registerLangQuads(NQuads,       pfQuads) ;
-        registerLangQuads(TriG,         pfQuads) ;
+        registerLangQuads(NQuads,       parserFactory) ;
+        registerLangQuads(TriG,         parserFactory) ;
     }
 
     /** Register a Jena IO name */
@@ -111,83 +113,68 @@ public class ParserRegistry
         mapJenaNameToLang.put(RDFLanguages.canonicalKey(name), lang) ;
     }
 
-    /** Register a language that parses to produces triples.
+    /** Register a language and it's parser factory.
      * To create a {@link Lang} object use {@link LangBuilder}.
      */
-    public static void registerLangTriples(Lang lang, ReaderRIOTFactory factory)
+    private static void registerLang(Lang lang, ReaderRIOTFactory factory)
     {
         RDFLanguages.register(lang) ;
-        langToTriples.put(lang, factory) ;
+        langToParserFactory.put(lang, factory) ;
     }
-        
-    /** Register a language that parses to produces quads */
-    public static void registerLangQuads(Lang lang, ReaderRIOTFactory factory)
+    
+    /** Register a language and it's parser factory.
+     * To create a {@link Lang} object use {@link LangBuilder}.
+     */
+    public static void registerLangTriples(Lang lang, ReaderRIOTFactory factory)
     {
-        RDFLanguages.register(lang) ;
-        langToQuads.put(lang, factory) ;
+        langTriples.add(lang) ;
+        registerLang(lang, factory) ;
     }
     
+    /** Register a language and it's parser factory.
+     * To create a {@link Lang} object use {@link LangBuilder}.
+     */
+    public static void registerLangQuads(Lang lang, ReaderRIOTFactory factory)
+    {
+        langQuads.add(lang) ;
+        registerLang(lang, factory) ;
+    }
+
     /** Remove registration */
     public static void removeRegistration(Lang lang)
     {
         RDFLanguages.unregister(lang) ;
-        langToTriples.remove(lang) ;
-        langToQuads.remove(lang) ;
-    }
-    
-    /** Return the triples parser factory for the language, or null if not registered */
-    public static ReaderRIOTFactory getFactoryTriples(Lang language)
-    {
-        return langToTriples.get(language) ;
+        langToParserFactory.remove(lang) ;
     }
     
-    /** Return the quads parser factory for the language, or null if not registered */
-    public static ReaderRIOTFactory getFactoryQuads(Lang language)
+    /** Return the parser factory for the language, or null if not registered */
+    public static ReaderRIOTFactory getFactory(Lang language)
     {
-        return langToQuads.get(language) ;
+        return langToParserFactory.get(language) ;
     }
-    
+
     /** return true if the language is registered with the triples parser factories */
-    public static boolean isTriples(Lang lang) { return langToTriples.containsKey(lang) ; }
+    public static boolean isTriples(Lang lang) { return langTriples.contains(lang) ; }
     
     /** return true if the language is registered with the quads parser factories */
-    public static boolean isQuads(Lang lang)   { return langToQuads.containsKey(lang) ; }
+    public static boolean isQuads(Lang lang)   { return langQuads.contains(lang) ; }
 
     // Parser factories
     
-    private static class ReaderRIOTFactoryTriple implements ReaderRIOTFactory
+    private static class ReaderRIOTFactoryImpl implements ReaderRIOTFactory
     {
         @Override
         public ReaderRIOT create(final Lang lang)
         {
             return new ReaderRIOT() {
-                // Needs sorting out
                 @Override
                 public void read(InputStream in, String baseURI, ContentType ct, RDFParserOutput output, Context context)
                 {
-                    LangRIOT parser = RiotReader.createParserTriples(in, lang, baseURI, output) ;
+                    LangRIOT parser = RiotReader.createParser(in, lang, baseURI, output) ;
                     parser.parse() ;
                 }
             } ;
         }
     } ;
-
-    private static class ReaderRIOTFactoryQuads implements ReaderRIOTFactory {
-        @Override
-        public ReaderRIOT create(final Lang lang)
-        {
-            return new ReaderRIOT() {
-                // Needs sorting out
-                @Override
-                public void read(InputStream in, String baseURI, ContentType ct, RDFParserOutput output, Context context)
-                {
-                    LangRIOT parser = RiotReader.createParserQuads(in, lang, baseURI, output) ;
-                    parser.parse() ;
-                }
-            } ;
-        }
-    } ;
-
-
 }
 

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java Wed Dec 26 22:48:38 2012
@@ -199,7 +199,7 @@ public class RDFDataMgr
     public static void read(Graph graph, String uri, String base, Lang hintLang, Context context)
     {
         RDFParserOutput dest = RDFParserOutputLib.graph(graph) ;
-        readTriples(dest, uri, base, hintLang, context) ;
+        read(dest, uri, base, hintLang, context) ;
     }
 
     /** Read triples into a Model with bytes from an InputStream.
@@ -246,7 +246,7 @@ public class RDFDataMgr
     public static void read(Graph graph, InputStream in, String base, Lang lang)
     {
         RDFParserOutput dest = RDFParserOutputLib.graph(graph) ;
-        processTriples(dest, base, new TypedInputStream(in), lang, null) ;
+        process(dest, base, new TypedInputStream(in), lang, null) ;
     }
 
     /** Read triples into a model with chars from an Reader.
@@ -498,7 +498,7 @@ public class RDFDataMgr
     public static void read(DatasetGraph dataset, String uri, String base, Lang hintLang, Context context)
     {
         RDFParserOutput sink = RDFParserOutputLib.dataset(dataset) ;
-        readQuads(sink, uri, base, hintLang, context) ;
+        read(sink, uri, base, hintLang, context) ;
     }
 
     /** Read quads or triples into a dataset with bytes from an input stream.
@@ -541,7 +541,7 @@ public class RDFDataMgr
     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) ;
+        process(dest, base, new TypedInputStream(in), lang, null) ;
     }
     
     /** Read quads into a dataset with chars from an Reader.
@@ -572,7 +572,7 @@ public class RDFDataMgr
     public static void read(DatasetGraph dataset, Reader in, String base, Lang lang)
     {
         RDFParserOutput dest = RDFParserOutputLib.dataset(dataset) ;
-        processQuads(dest, base, in, lang, null) ;
+        process(dest, base, in, lang, null) ;
     }
 
     /** Read quads into a dataset with chars from a StringReader.
@@ -599,47 +599,18 @@ public class RDFDataMgr
     public static void read(DatasetGraph dataset, StringReader in, String base, Lang lang)
     {
         RDFParserOutput dest = RDFParserOutputLib.dataset(dataset) ;
-        processQuads(dest, base, in, lang, null) ;
+        process(dest, base, in, lang, null) ;
     }
 
-    /** Read triples
+    /** Read RDF data.
      * @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, Lang hintLang, Context context)
+    public static void read(RDFParserOutput sink, String uri, Lang hintLang, Context context)
     {
-        readTriples(sink, uri, uri, hintLang, context) ;
-    }
-    
-    /** 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, Lang hintLang, Context context)
-    {
-        TypedInputStream in = open(uri, context) ;
-        if ( in == null )
-            throw new RiotException("Not found: "+uri) ;
-        if ( base == null )
-            base = uri ;
-        processTriples(sink, base, in, hintLang, context) ;
-        IO.close(in) ;
-    }
-    
-    /** 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(RDFParserOutput sink, String uri, Lang hintLang, Context context)
-    {
-        readQuads(sink, uri, uri, hintLang, context) ;
+        read(sink, uri, uri, hintLang, context) ;
     }
 
     /** Read quads,.
@@ -649,12 +620,12 @@ public class RDFDataMgr
      * @param hintLang  Hint for the syntax
      * @param context   Content object to control reading process.
      */
-    public static void readQuads(RDFParserOutput sink, String uri, String base, Lang hintLang, Context context)
+    public static void read(RDFParserOutput sink, String uri, String base, Lang hintLang, Context context)
     {
         TypedInputStream in = open(uri, context) ;
         if ( in == null )
             throw new RiotException("Not found: "+uri) ;
-        processQuads(sink, base, in, hintLang, context) ;
+        process(sink, base, in, hintLang, context) ;
         IO.close(in) ;
     }
 
@@ -708,22 +679,22 @@ public class RDFDataMgr
     // 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, Lang hintLang, Context context)
+    private static void process(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) ;
+        ReaderRIOT reader = getReader(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)
+    private static ReaderRIOT getReader(ContentType ct)
     {
         Lang lang = RDFLanguages.contentTypeToLang(ct) ;
-        ReaderRIOTFactory r = ParserRegistry.getFactoryTriples(lang) ;
+        ReaderRIOTFactory r = ParserRegistry.getFactory(lang) ;
         if ( r == null )
             return null ;
         return r.create(lang) ;
@@ -752,37 +723,16 @@ public class RDFDataMgr
                 RDFLanguages.RDFJSON.equals(lang)?
                               new TokenizerJSON(PeekReader.make(in)) :   
                               TokenizerFactory.makeTokenizer(in) ;
-            parser = RiotReader.createParserTriples(tokenizer, lang, base, output) ;
+            parser = RiotReader.createParser(tokenizer, lang, base, output) ;
         }
         parser.parse() ;
     }
     
-    private static void processQuads(RDFParserOutput destination, String uri, TypedInputStream in, Lang hintLang, Context context)
-    {
-        ContentType ct = determineCT(uri, in.getContentType(), hintLang ) ;
-        if ( ct == null )
-            throw new RiotException("Failed to determine the quads content type: (URI="+uri+" : stream="+in.getContentType()+" : hint="+hintLang+")") ;
-        ReaderRIOT reader = getReaderQuads(ct) ;
-        if ( reader == null )
-            throw new RiotException("No quads reader for content type: "+ct) ;
-        
-        reader.read(in, uri, ct, destination, context) ;
-    }
-
-    private static ReaderRIOT getReaderQuads(ContentType ct)
-    {
-        Lang lang = RDFLanguages.contentTypeToLang(ct) ;
-        ReaderRIOTFactory r = ParserRegistry.getFactoryQuads(lang) ;
-        if ( r == null )
-            return null ;
-        return r.create(lang) ;
-    }
-    
     // java.io.Readers are NOT preferred.
-    private static void processQuads(RDFParserOutput dest, String base, Reader in, Lang hintLang, Context context)
+    private static void process(RDFParserOutput dest, String base, Reader in, Lang hintLang, Context context)
     {
         Tokenizer tokenizer = TokenizerFactory.makeTokenizer(in) ;
-        LangRIOT parser = RiotReader.createParserQuads(tokenizer, hintLang, base, dest) ;
+        LangRIOT parser = RiotReader.createParser(tokenizer, hintLang, base, dest) ;
         parser.parse() ;
     }
 

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=1426079&r1=1426078&r2=1426079&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 Wed Dec 26 22:48:38 2012
@@ -152,8 +152,7 @@ public class RDFLanguages
     /** Register a language.
      * To create a {@link Lang} object use {@link LangBuilder}.
      * See also 
-     * {@link ParserRegistry#registerLangTriples} and 
-     * {@link ParserRegistry#registerLangQuads}
+     * {@link ParserRegistry#registerLang}
      * for registering a language and it's RDF parser fatory.
      * 
      * @see ParserRegistry
@@ -237,13 +236,13 @@ public class RDFLanguages
         checkRegistration(lang) ;
         return true ;
     }
-
-    /** return true if the language is registered with the triples parser factories */
-    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(Lang lang)   { return ParserRegistry.isQuads(lang) ; }
+    /** return true if the language is registered as a triples language */
+    public static boolean isTriples(Lang lang) { return ParserRegistry.isTriples(lang) ; }
     
+    /** return true if the language is registered as a quads language */
+    public static boolean isQuads(Lang lang) { return ParserRegistry.isQuads(lang) ; }
+
     /** Map a content type (without charset) to a {@link Lang} */
     public static Lang contentTypeToLang(String contentType)
     {

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java Wed Dec 26 22:48:38 2012
@@ -52,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      RDFDataMgr#readTriples
+     * @see         RiotReader#parse(String,RDFParserOutput)
      */  
     public static void parseTriples(String filename, Sink<Triple> sink)
     { parseTriples(filename, null, null, sink) ; }
@@ -63,12 +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     RDFDataMgr#readTriples
+     * @see             RiotReader#parse
      */  
     public static void parseTriples(String filename, Lang lang, String baseIRI, Sink<Triple> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkTriples(sink) ;
-        parseTriples(filename, lang, baseIRI, dest) ;
+        parse(filename, lang, baseIRI, dest) ;
     }
 
     /** Parse an InputStream, sending triples to a sink.
@@ -76,12 +76,12 @@ public class RiotReader
      * @param lang      Language.
      * @param baseIRI   Base IRI. 
      * @param sink      Where to send the triples from the parser.
-     * @see             RDFDataMgr#readTriples
+     * @see             RiotReader#parse
      */  
     public static void parseTriples(InputStream in, Lang lang, String baseIRI, Sink<Triple> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkTriples(sink) ;
-        parseTriples(in, lang, baseIRI, dest) ;
+        parse(in, lang, baseIRI, dest) ;
     }
     
     // -------- Quads
@@ -89,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          RDFDataMgr#readQuads
+     * @see         RiotReader#parse
      */
     public static void parseQuads(String filename, Sink<Quad> sink)
     { parseQuads(filename, null, null, sink) ; }
@@ -99,12 +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             RDFDataMgr#readQuads
+     * @see             RiotReader#parse
      */
     public static void parseQuads(String filename, Lang lang, String baseIRI, Sink<Quad> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkQuads(sink) ;
-        parseQuads(filename, lang, baseIRI, dest) ;
+        parse(filename, lang, baseIRI, dest) ;
     }
 
     /** Parse an InputStream, sending quads to a sink.
@@ -112,106 +112,56 @@ public class RiotReader
      * @param lang      Language.
      * @param baseIRI   Base IRI. 
      * @param sink      Where to send the quads from the parser.
-     * @see              RDFDataMgr#readQuads
+     * @see             RiotReader#parse
      */
     public static void parseQuads(InputStream in, Lang lang, String baseIRI, Sink<Quad> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkQuads(sink) ;
-        parseQuads(in, lang, baseIRI, dest) ;
+        parse(in, lang, baseIRI, dest) ;
     }
 
-    /** Parse a file, sending triples to a sink.
+    /** Parse a file, sending output to a RDFParserOutput sink.
      * Must be in a triples syntax.
      * @param filename 
      * @param dest  Where to send the triples from the parser.
      */
-    public static void parseTriples(String filename, RDFParserOutput dest)
-    { parseTriples(filename, null, null, dest) ; }
+    public static void parse(String filename, RDFParserOutput dest)
+    { parse(filename, null, null, dest) ; }
     
-    /** Parse a file, sending triples to a sink.
+    /** Parse a file, sending output to a RDFParserOutput sink.
      * Must be in a triples syntax.
      * @param filename 
      * @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 dest      Where to send the triples from the parser.
      */  
-    public static void parseTriples(String filename, Lang lang, String baseIRI, RDFParserOutput dest)
+    public static void parse(String filename, Lang lang, String baseIRI, RDFParserOutput dest)
     {
         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 ( 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) ;
+        parse(in, lang, base, dest) ;
         IO.close(in) ;
     }
 
-    /** Parse an InputStream, sending triples to a sink.
+    /** Parse an InputStream, using RDFParserOutput as the destination for the parser output.
      * @param in        Source for bytes to parse.
      * @param lang      Language.
      * @param baseIRI   Base IRI. 
      * @param dest      Where to send the triples from the parser.
      */  
-    public static void parseTriples(InputStream in, Lang lang, String baseIRI, RDFParserOutput dest)
+    public static void parse(InputStream in, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        LangRIOT parser = RiotReader.createParserTriples(in, lang, baseIRI, dest) ;
+        LangRIOT parser = RiotReader.createParser(in, lang, baseIRI, dest) ;
         parser.parse() ;
-        // Prefixes.
     }
     
-    // -------- Quads
-    
-    /** Parse a file, sending quads to a sink.
-     * @param filename
-     * @param dest  Where to send the quads from the parser.
-     */
-    public static void parseQuads(String filename, RDFParserOutput dest)
-    { parseQuads(filename, null, null, dest) ; }
-    
-    /** Parse a file, sending quads to a sink.
-     * @param filename 
-     * @param lang      Language, or null for "guess from filename" (e.g. extension)
-     * @param baseIRI   Base IRI, or null for base on input filename
-     * @param dest      Where to send the quads from the parser.
-     */
-    public static void parseQuads(String filename, Lang lang, String baseIRI, RDFParserOutput dest)
-    {
-        InputStream in = IO.openFile(filename) ; 
-        String base = chooseBaseIRI(baseIRI, filename) ;
-        if ( lang == null )
-            lang = filenameToLang(filename, NQuads) ;     // ** N-Quads
-        parseQuads(in, lang, base, dest) ;
-        IO.close(in) ;
-    }
-
-    /** Parse an InputStream, sending quads to a sink.
-     * @param in        Source for bytes to parse.
-     * @param lang      Language.
-     * @param baseIRI   Base IRI. 
-     * @param dest      Where to send the quads from the parser.
-     */
-    public static void parseQuads(InputStream in, Lang lang, String baseIRI, RDFParserOutput dest)
-    {
-        LangRIOT parser = RiotReader.createParserQuads(in, lang, baseIRI, dest) ;
-        parser.parse() ;
-    }
-
     // -------- Parsers
     
-    /** Create a parser for a triples language */  
-    public static LangRIOT createParserTriples(InputStream input, Lang lang, String baseIRI, RDFParserOutput dest)
+    /** Create a parser */  
+    public static LangRIOT createParser(InputStream input, Lang lang, String baseIRI, RDFParserOutput dest)
     {
         if ( lang == RDFXML )
         {
@@ -222,11 +172,10 @@ public class RiotReader
         Tokenizer tokenizer = ( lang == RDFJSON ) ?
             new TokenizerJSON(PeekReader.makeUTF8(input)) :
                 TokenizerFactory.makeTokenizerUTF8(input) ;
-        return createParserTriples(tokenizer, lang, baseIRI, dest) ;
+        return createParser(tokenizer, lang, baseIRI, dest) ;
     }
-    
-    /** Create a parser for a triples language */  
-    public static LangRIOT createParserTriples(Tokenizer tokenizer, Lang lang, String baseIRI, RDFParserOutput dest)
+    /** Create a parser */  
+    public static LangRIOT createParser(Tokenizer tokenizer, Lang lang, String baseIRI, RDFParserOutput dest)
     {
         if ( RDFLanguages.sameLang(RDFXML, lang) )
             throw new RiotException("Not possible - can't parse RDF/XML from a RIOT token stream") ;
@@ -235,13 +184,18 @@ public class RiotReader
         if ( RDFLanguages.sameLang(NTriples, lang) )
                 return createParserNTriples(tokenizer, dest) ;
         if ( RDFLanguages.sameLang(RDFJSON, lang) )
-                // But it must be a JSON tokenizer ...
+            // But it must be a JSON tokenizer ...
             return createParserRdfJson(tokenizer, dest) ;
-        if ( RDFLanguages.sameLang(NQuads, lang) || RDFLanguages.sameLang(TriG, lang) )
-            throw new RiotException("Not a triples language: "+lang) ;
+        
+        if ( RDFLanguages.sameLang(NQuads, lang) )
+            return createParserNQuads(tokenizer, dest) ;
+        if ( RDFLanguages.sameLang(TriG, lang) )
+            return createParserTriG(tokenizer, baseIRI, dest) ;
+        
         return null ;
     }
-    
+
+
     // TODO create a Tokenizer version of this method
     public static Iterator<Triple> createIteratorTriples(InputStream input, Lang lang, String baseIRI)
     {
@@ -259,26 +213,6 @@ public class RiotReader
         }
     }
     
-    /** Create a parser for a quads (or triples) language */  
-    public static LangRIOT createParserQuads(InputStream input, Lang lang, String baseIRI, RDFParserOutput dest)
-    {
-        Tokenizer tokenizer = TokenizerFactory.makeTokenizerUTF8(input) ;
-        return createParserQuads(tokenizer, lang, baseIRI, dest) ;
-    }
-    
-    /** Create a parser for a quads language */  
-    public static LangRIOT createParserQuads(Tokenizer tokenizer, Lang lang, String baseIRI, RDFParserOutput dest)
-    {
-        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)
     {

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotQuadParsePuller.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotQuadParsePuller.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotQuadParsePuller.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotQuadParsePuller.java Wed Dec 26 22:48:38 2012
@@ -45,7 +45,7 @@ public class RiotQuadParsePuller extends
     protected LangRIOT createParser(Sink<Quad> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkQuads(sink) ;
-        return RiotReader.createParserQuads(in, lang, baseIRI, dest) ;
+        return RiotReader.createParser(in, lang, baseIRI, dest) ;
     }
 }
 

Modified: 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/openjena/riot/RiotReader.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotReader.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotReader.java Wed Dec 26 22:48:38 2012
@@ -18,24 +18,18 @@
 
 package org.openjena.riot;
 
-import static org.apache.jena.riot.RDFLanguages.N3 ;
 import static org.apache.jena.riot.RDFLanguages.NQuads ;
-import static org.apache.jena.riot.RDFLanguages.NTriples ;
-import static org.apache.jena.riot.RDFLanguages.RDFJSON ;
-import static org.apache.jena.riot.RDFLanguages.RDFXML ;
 import static org.apache.jena.riot.RDFLanguages.TriG ;
-import static org.apache.jena.riot.RDFLanguages.Turtle ;
-import static org.apache.jena.riot.RDFLanguages.filenameToLang ;
-import org.apache.jena.riot.Lang ;
+
 import java.io.InputStream ;
 import java.util.Iterator ;
 
-import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.io.PeekReader ;
 import org.apache.jena.atlas.iterator.IteratorResourceClosing ;
 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.Lang ;
 import org.apache.jena.riot.RDFDataMgr ;
 import org.apache.jena.riot.RDFLanguages ;
 import org.apache.jena.riot.lang.* ;
@@ -62,7 +56,7 @@ public class RiotReader
      * Must be in a triples syntax.
      * @param filename 
      * @param sink  Where to send the triples from the parser.
-     * @see      RDFDataMgr#readTriples
+     * @see      RDFDataMgr#read
      */  
     public static void parseTriples(String filename, Sink<Triple> sink)
     { parseTriples(filename, null, null, sink) ; }
@@ -73,8 +67,8 @@ 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     RDFDataMgr#readTriples
-     */  
+     * @see     RDFDataMgr#read
+     */
     public static void parseTriples(String filename, Lang lang, String baseIRI, Sink<Triple> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkTriples(sink) ;
@@ -86,7 +80,7 @@ public class RiotReader
      * @param lang      Language.
      * @param baseIRI   Base IRI. 
      * @param sink      Where to send the triples from the parser.
-     * @see             RDFDataMgr#readTriples
+     * @see             RDFDataMgr#read
      */  
     public static void parseTriples(InputStream in, Lang lang, String baseIRI, Sink<Triple> sink)
     {
@@ -99,7 +93,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          RDFDataMgr#readQuads
+     * @see          RDFDataMgr#read
      */
     public static void parseQuads(String filename, Sink<Quad> sink)
     { parseQuads(filename, null, null, sink) ; }
@@ -109,7 +103,7 @@ 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             RDFDataMgr#readQuads
+     * @see             RDFDataMgr#read
      */
     public static void parseQuads(String filename, Lang lang, String baseIRI, Sink<Quad> sink)
     {
@@ -119,10 +113,10 @@ public class RiotReader
 
     /** Parse an InputStream, sending quads to a sink.
      * @param in        Source for bytes to parse.
-     * @param lang      Language.
+     * @param lang      Language.org.apache.jena.riot.RiotReader
      * @param baseIRI   Base IRI. 
      * @param sink      Where to send the quads from the parser.
-     * @see              RDFDataMgr#readQuads
+     * @see              RDFDataMgr#read
      */
     public static void parseQuads(InputStream in, Lang lang, String baseIRI, Sink<Quad> sink)
     {
@@ -147,25 +141,7 @@ public class RiotReader
      */  
     public static void parseTriples(String filename, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        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 ( 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) ;
+        org.apache.jena.riot.RiotReader.parse(filename, lang, baseIRI, dest) ;
     }
 
     /** Parse an InputStream, sending triples to a sink.
@@ -176,9 +152,7 @@ public class RiotReader
      */  
     public static void parseTriples(InputStream in, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        LangRIOT parser = RiotReader.createParserTriples(in, lang, baseIRI, dest) ;
-        parser.parse() ;
-        // Prefixes.
+        org.apache.jena.riot.RiotReader.parse(in, lang, baseIRI, dest) ;
     }
     
     // -------- Quads
@@ -198,12 +172,7 @@ public class RiotReader
      */
     public static void parseQuads(String filename, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        InputStream in = IO.openFile(filename) ; 
-        String base = chooseBaseIRI(baseIRI, filename) ;
-        if ( lang == null )
-            lang = filenameToLang(filename, NQuads) ;     // ** N-Quads
-        parseQuads(in, lang, base, dest) ;
-        IO.close(in) ;
+        org.apache.jena.riot.RiotReader.parse(filename, lang, baseIRI, dest) ;
     }
 
     /** Parse an InputStream, sending quads to a sink.
@@ -214,8 +183,7 @@ public class RiotReader
      */
     public static void parseQuads(InputStream in, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        LangRIOT parser = RiotReader.createParserQuads(in, lang, baseIRI, dest) ;
-        parser.parse() ;
+        org.apache.jena.riot.RiotReader.parse(in, lang, baseIRI, dest) ;
     }
 
     // -------- Parsers
@@ -223,33 +191,13 @@ public class RiotReader
     /** Create a parser for a triples language */  
     public static LangRIOT createParserTriples(InputStream input, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        if ( lang == RDFXML )
-        {
-            if ( baseIRI != null )
-                baseIRI = IRIResolver.resolveString(baseIRI) ;
-            return LangRDFXML.create(input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest) ;
-        }
-        Tokenizer tokenizer = ( lang == RDFJSON ) ?
-            new TokenizerJSON(PeekReader.makeUTF8(input)) :
-                TokenizerFactory.makeTokenizerUTF8(input) ;
-        return createParserTriples(tokenizer, lang, baseIRI, dest) ;
+        return org.apache.jena.riot.RiotReader.createParser(input, lang, baseIRI, dest) ;
     }
     
     /** Create a parser for a triples language */  
     public static LangRIOT createParserTriples(Tokenizer tokenizer, Lang lang, String baseIRI, RDFParserOutput dest)
     {
-        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) ;
-        if ( RDFLanguages.sameLang(NTriples, lang) )
-                return createParserNTriples(tokenizer, dest) ;
-        if ( RDFLanguages.sameLang(RDFJSON, lang) )
-                // But it must be a JSON tokenizer ...
-            return createParserRdfJson(tokenizer, dest) ;
-        if ( RDFLanguages.sameLang(NQuads, lang) || RDFLanguages.sameLang(TriG, lang) )
-            throw new RiotException("Not a triples language: "+lang) ;
-        return null ;
+        return org.apache.jena.riot.RiotReader.createParser(tokenizer, lang, baseIRI, dest) ;
     }
     
     // TODO create a Tokenizer version of this method

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotTripleParsePuller.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotTripleParsePuller.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotTripleParsePuller.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/riot/RiotTripleParsePuller.java Wed Dec 26 22:48:38 2012
@@ -45,7 +45,7 @@ public class RiotTripleParsePuller exten
     protected LangRIOT createParser(Sink<Triple> sink)
     {
         RDFParserOutput dest = RDFParserOutputLib.sinkTriples(sink) ;
-        return RiotReader.createParserTriples(in, lang, baseIRI, dest) ;
+        return RiotReader.createParser(in, lang, baseIRI, dest) ;
     }
 }
 

Modified: jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java Wed Dec 26 22:48:38 2012
@@ -296,7 +296,7 @@ public abstract class CmdLangParse exten
             
             SinkCounting<Triple> sink2 = new SinkCounting<Triple>(s) ;
             RDFParserOutput dest = RDFParserOutputLib.sinkTriples(sink2) ;
-            parser = RiotReader.createParserTriples(in, lang, baseURI, dest) ;
+            parser = RiotReader.createParser(in, lang, baseURI, dest) ;
             
             sink = sink2 ;
         }
@@ -310,7 +310,7 @@ public abstract class CmdLangParse exten
             
             SinkCounting<Quad> sink2 = new SinkCounting<Quad>(s) ;
             RDFParserOutput dest = RDFParserOutputLib.sinkQuads(sink2) ;
-            parser = RiotReader.createParserQuads(in, lang, baseURI, dest) ;
+            parser = RiotReader.createParser(in, lang, baseURI, dest) ;
             sink = sink2 ;
         }
         

Modified: jena/trunk/jena-arq/src/main/java/riotcmd/infer.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/infer.java?rev=1426079&r1=1426078&r2=1426079&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/infer.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/infer.java Wed Dec 26 22:48:38 2012
@@ -152,14 +152,14 @@ public class infer extends CmdGeneral
         {
             InputStream in = IO.openFile(filename) ;
             sink = RDFParserOutputLib.extendTriplesToQuads(sink) ;
-            LangRIOT parser = RiotReader.createParserTriples(in, lang, baseURI, sink) ;
+            LangRIOT parser = RiotReader.createParser(in, lang, baseURI, sink) ;
             parser.parse() ;
             return ;
         }
         else
         {
             InputStream in = IO.openFile(filename) ;
-            LangRIOT parser = RiotReader.createParserQuads(in, lang, baseURI, sink) ; 
+            LangRIOT parser = RiotReader.createParser(in, lang, baseURI, sink) ; 
             parser.parse() ;
         }        
     }