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() ;
}
}