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 2017/05/24 14:50:26 UTC
[2/7] jena git commit: JENA-1340: riot command to work by configuring
an RDFParserBuilder.
JENA-1340: riot command to work by configuring an RDFParserBuilder.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d286ea0a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d286ea0a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d286ea0a
Branch: refs/heads/master
Commit: d286ea0ae635c121a68310405b6ecdc6306c0381
Parents: bfc6e47
Author: Andy Seaborne <an...@apache.org>
Authored: Mon May 22 00:30:23 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon May 22 00:30:56 2017 +0100
----------------------------------------------------------------------
.../org/apache/jena/riot/RDFParserRegistry.java | 14 ++++-
.../org/apache/jena/riot/lang/RiotParsers.java | 4 +-
.../src/main/java/riotcmd/CmdLangParse.java | 61 ++++++++++----------
jena-cmds/src/main/java/riotcmd/riot.java | 12 ++--
4 files changed, 50 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d286ea0a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java
index f19c78e..1a1458b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java
@@ -190,13 +190,23 @@ public class RDFParserRegistry
@Override
public void read(InputStream in, String baseURI, ContentType ct, StreamRDF output, Context context) {
- LangRIOT parser = RiotParsers.createParser(in, lang, baseURI, output, parserProfile);
+ // Unnecessary - RDFParser did it and set it in the ParserProfile
+// if ( baseURI != null ) {
+// IRIResolver newResolver = IRIResolver.create(baseURI) ;
+// parserProfile.setIRIResolver(newResolver);
+// }
+ LangRIOT parser = RiotParsers.createParser(in, lang, output, parserProfile);
parser.parse() ;
}
@Override
public void read(Reader in, String baseURI, ContentType ct, StreamRDF output, Context context) {
- LangRIOT parser = RiotParsers.createParser(in, lang, baseURI, output, parserProfile);
+ // Unnecessary - RDFParser did it and set it in the ParserProfile
+// if ( baseURI != null ) {
+// IRIResolver newResolver = IRIResolver.create(baseURI) ;
+// parserProfile.setIRIResolver(newResolver);
+// }
+ LangRIOT parser = RiotParsers.createParser(in, lang, output, parserProfile);
parser.parse() ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d286ea0a/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java b/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java
index 054ec23..8e8df94 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java
@@ -48,7 +48,7 @@ public class RiotParsers {
private RiotParsers() {}
/** InputStream input */
- public static LangRIOT createParser(InputStream input, Lang lang, String baseIRI, StreamRDF dest, ParserProfile profile) {
+ public static LangRIOT createParser(InputStream input, Lang lang, StreamRDF dest, ParserProfile profile) {
if ( RDFLanguages.sameLang(RDFJSON, lang) ) {
Tokenizer tokenizer = new TokenizerJSON(PeekReader.makeUTF8(input));
return createParserRdfJson(tokenizer, dest, profile);
@@ -67,7 +67,7 @@ public class RiotParsers {
}
/** Reader input */
- public static LangRIOT createParser(Reader input, Lang lang, String baseIRI, StreamRDF dest, ParserProfile profile) {
+ public static LangRIOT createParser(Reader input, Lang lang, StreamRDF dest, ParserProfile profile) {
if ( RDFLanguages.sameLang(RDFJSON, lang) ) {
Tokenizer tokenizer = new TokenizerJSON(PeekReader.make(input));
return createParserRdfJson(tokenizer, dest, profile);
http://git-wip-us.apache.org/repos/asf/jena/blob/d286ea0a/jena-cmds/src/main/java/riotcmd/CmdLangParse.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/riotcmd/CmdLangParse.java b/jena-cmds/src/main/java/riotcmd/CmdLangParse.java
index d247c52..34a7dec 100644
--- a/jena-cmds/src/main/java/riotcmd/CmdLangParse.java
+++ b/jena-cmds/src/main/java/riotcmd/CmdLangParse.java
@@ -37,7 +37,6 @@ import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.lib.InternalErrorException ;
import org.apache.jena.atlas.lib.Pair ;
import org.apache.jena.atlas.web.ContentType ;
-import org.apache.jena.atlas.web.TypedInputStream ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.riot.* ;
import org.apache.jena.riot.lang.LabelToNode ;
@@ -99,7 +98,6 @@ public abstract class CmdLangParse extends CmdGeneral
protected interface PostParseHandler { void postParse(); }
static class ParseRecord {
- final String baseURI;
final String filename;
final boolean success;
final long timeMillis;
@@ -107,10 +105,8 @@ public abstract class CmdLangParse extends CmdGeneral
final long quads;
final long tuples = 0;
- public ParseRecord(String baseURI, String filename,
- boolean successful, long timeMillis,
+ public ParseRecord(String filename, boolean successful, long timeMillis,
long countTriples, long countQuads) {
- this.baseURI = baseURI;
this.filename = filename;
this.success = successful;
this.timeMillis = timeMillis;
@@ -121,6 +117,9 @@ public abstract class CmdLangParse extends CmdGeneral
@Override
protected void exec() {
+ if ( modLangParse.skipOnBadTerm() )
+ throw new CmdException("Not supported : skip on bad term");
+
boolean oldStrictValue = SysRIOT.isStrictMode() ;
if ( modLangParse.strictMode() )
SysRIOT.setStrictMode(true) ;
@@ -149,6 +148,7 @@ public abstract class CmdLangParse extends CmdGeneral
}
try {
+ // The actual parsing ...
if ( super.getPositional().isEmpty() ) {
ParseRecord parseRec = parseFile("-");
outcome(parseRec);
@@ -162,10 +162,12 @@ public abstract class CmdLangParse extends CmdGeneral
outcome(parseRec);
}
}
+ // ... parsing done.
+
if ( postParse != null )
postParse.postParse();
// Post parse information.
- // Total if more then one file.
+ // Total if more than one file.
if ( super.getPositional().size() > 1 && modTime.timingEnabled() ) {
long totalMillis = 0;
long totalTriples = 0;
@@ -206,32 +208,33 @@ public abstract class CmdLangParse extends CmdGeneral
public ParseRecord parseFile(String filename) {
String baseURI = modLangParse.getBaseIRI() ;
+ RDFParserBuilder builder = RDFParser.create();
+ if ( baseURI != null )
+ builder.base(baseURI);
+ Lang lang = selectLang(null, null, RDFLanguages.NQUADS) ;
+ builder.lang(lang);
+
+ // Set the source.
if ( filename.equals("-") ) {
- if ( baseURI == null )
+ if ( baseURI == null ) {
baseURI = "http://base/";
- TypedInputStream in = TypedInputStream.wrap(System.in) ;
- return parseRIOT(baseURI, "stdin", in) ;
- } else {
- try ( TypedInputStream in = RDFDataMgr.open(filename) ) {
- return parseRIOT(baseURI, filename, in) ;
- } catch (RiotNotFoundException ex) {
- System.err.println("Can't open '"+filename+"' "+ex.getMessage()) ;
- return new ParseRecord(null, filename, false, -1, -1, -1);
+ builder.base(baseURI);
}
+ builder.source(System.in);
+ } else {
+ builder.source(filename);
}
+ return parseRIOT(builder, filename);
}
protected abstract Lang selectLang(String filename, ContentType contentType, Lang dftLang ) ;
- protected ParseRecord parseRIOT(String baseURI, String filename, TypedInputStream in) {
- ContentType ct = in.getMediaType() ;
-
- baseURI = SysRIOT.chooseBaseIRI(baseURI, filename) ;
-
- RDFParserBuilder builder = RDFParser.create();
+ protected ParseRecord parseRIOT(RDFParserBuilder builder, /*Info for the ProcessOutcome*/ String filename) {
boolean checking = true ;
- if ( modLangParse.explicitChecking() ) checking = true ;
- if ( modLangParse.explicitNoChecking() ) checking = false ;
+ if ( modLangParse.explicitChecking() )
+ checking = true;
+ if ( modLangParse.explicitNoChecking() )
+ checking = false;
builder.checking(checking);
ErrorHandler errHandler = ErrorHandlerFactory.errorHandlerWarn ;
@@ -244,14 +247,9 @@ public abstract class CmdLangParse extends CmdGeneral
}
if ( modLangParse.skipOnBadTerm() ) {
- // TODO skipOnBadterm
+ // skipOnBadterm - this needs collaboration from the parser.
}
- Lang lang = selectLang(filename, ct, RDFLanguages.NQUADS) ;
- if ( ! RDFLanguages.isQuads(lang) && ! RDFLanguages.isTriples(lang) )
- throw new CmdException("Undefined language: "+lang) ;
- builder.lang(lang);
-
// Make a flag.
// Input and output subflags.
// If input is "label, then output using NodeToLabel.createBNodeByLabelRaw() ;
@@ -279,8 +277,6 @@ public abstract class CmdLangParse extends CmdGeneral
modTime.startTimer() ;
sink.start() ;
-
- builder.source(in);
RDFParser parser = builder.build();
try {
parser.parse(sink);
@@ -290,7 +286,8 @@ public abstract class CmdLangParse extends CmdGeneral
}
sink.finish() ;
long x = modTime.endTimer() ;
- ParseRecord outcome = new ParseRecord(baseURI, filename, successful, x, sink.countTriples(), sink.countQuads());
+ // TEMP
+ ParseRecord outcome = new ParseRecord(filename, successful, x, sink.countTriples(), sink.countQuads());
return outcome;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d286ea0a/jena-cmds/src/main/java/riotcmd/riot.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/riotcmd/riot.java b/jena-cmds/src/main/java/riotcmd/riot.java
index 1bf8cf6..4ef6df8 100644
--- a/jena-cmds/src/main/java/riotcmd/riot.java
+++ b/jena-cmds/src/main/java/riotcmd/riot.java
@@ -47,11 +47,13 @@ public class riot extends CmdLangParse
if ( contentType != null && ! WebContent.matchContentType(WebContent.ctTextPlain, contentType) )
return RDFLanguages.contentTypeToLang(contentType) ;
-
- Lang lang = RDFLanguages.filenameToLang(filename) ;
- if ( lang == null )
- lang = dftLang ;
- return lang ;
+
+ if ( filename != null ) {
+ Lang lang = RDFLanguages.filenameToLang(filename) ;
+ if ( lang != null )
+ return lang;
+ }
+ return dftLang;
}
@Override