This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jena.git
The following commit(s) were added to refs/heads/master by this push:
new d23a6ac JENA-1855: Quad.defaultGraphNodeGenerated from TriG parsing.
new 64253b9 Merge pull request #706 from afs/jena-1855-parsed-quads
d23a6ac is described below
commit d23a6acc64a5e0467503c867e8a7bfd842939627
Author: Andy Seaborne <[email protected]>
AuthorDate: Tue Mar 10 18:39:41 2020 +0000
JENA-1855: Quad.defaultGraphNodeGenerated from TriG parsing.
---
.../java/org/apache/jena/riot/lang/LangTriG.java | 4 +-
.../apache/jena/riot/lang/CatchParserOutput.java | 51 ++++++++++++++++++++++
.../apache/jena/riot/lang/TestParserFactory.java | 47 ++++++++------------
3 files changed, 71 insertions(+), 31 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/lang/LangTriG.java
b/jena-arq/src/main/java/org/apache/jena/riot/lang/LangTriG.java
index e058957..3c9c68a 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/lang/LangTriG.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/lang/LangTriG.java
@@ -259,8 +259,8 @@ public class LangTriG extends LangTurtleBase {
protected void emit(Node subject, Node predicate, Node object) {
Node graph = getCurrentGraph() ;
- if ( graph == Quad.defaultGraphNodeGenerated )
- graph = Quad.tripleInQuad ;
+ if ( graph == Quad.tripleInQuad )
+ graph = Quad.defaultGraphNodeGenerated;
Quad quad = profile.createQuad(graph, subject, predicate, object,
currLine, currCol) ;
dest.quad(quad) ;
diff --git
a/jena-arq/src/test/java/org/apache/jena/riot/lang/CatchParserOutput.java
b/jena-arq/src/test/java/org/apache/jena/riot/lang/CatchParserOutput.java
new file mode 100644
index 0000000..1a20ca0
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/CatchParserOutput.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.lang;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.jena.atlas.lib.Pair;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.riot.system.StreamRDF;
+import org.apache.jena.sparql.core.Quad;
+
+class CatchParserOutput implements StreamRDF
+{
+ List<Triple> triples = new ArrayList<>() ;
+ List<Quad> quads = new ArrayList<>() ;
+ List<Pair<String,String>> prefixes = new ArrayList<>() ;
+ List<String> bases = new ArrayList<>() ;
+
+ int startCalled = 0 ;
+
+ int finishCalled = 0 ;
+
+ @Override public void start() { startCalled++ ; }
+
+ @Override public void triple(Triple triple) { triples.add(triple) ; }
+
+ @Override public void quad(Quad quad) { quads.add(quad) ; }
+
+ @Override public void base(String base) { bases.add(base) ; }
+
+ @Override public void prefix(String prefix, String iri) {
prefixes.add(Pair.create(prefix, iri)) ; }
+
+ @Override public void finish() { finishCalled++ ; }
+}
\ No newline at end of file
diff --git
a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java
b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java
index 6b9e5ca..762913d 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java
@@ -19,11 +19,9 @@
package org.apache.jena.riot.lang;
import java.io.StringReader ;
-import java.util.ArrayList ;
import java.util.List ;
import org.apache.jena.atlas.junit.BaseTest ;
-import org.apache.jena.atlas.lib.Pair ;
import org.apache.jena.graph.Triple ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFParser ;
@@ -38,30 +36,6 @@ import org.junit.Test ;
/** System-level testing of the parsers - testing the parser plumbing, not the
language details */
public class TestParserFactory extends BaseTest
{
- static class CatchParserOutput implements StreamRDF
- {
- List<Triple> triples = new ArrayList<>() ;
- List<Quad> quads = new ArrayList<>() ;
- List<Pair<String,String>> prefixes = new ArrayList<>() ;
- List<String> bases = new ArrayList<>() ;
-
- int startCalled = 0 ;
-
- int finishCalled = 0 ;
-
- @Override public void start() { startCalled++ ; }
-
- @Override public void triple(Triple triple) { triples.add(triple)
; }
-
- @Override public void quad(Quad quad) { quads.add(quad) ; }
-
- @Override public void base(String base) { bases.add(base) ; }
-
- @Override public void prefix(String prefix, String iri) {
prefixes.add(Pair.create(prefix, iri)) ; }
-
- @Override public void finish() { finishCalled++ ; }
- }
-
@Test public void ntriples_01()
{
{
@@ -154,8 +128,23 @@ public class TestParserFactory extends BaseTest
assertEquals(q, last(sink.quads)) ;
}
- @Test public void trig_01()
- {
+ @Test public void nquads_dft_triple() {
+ // JENA-1854
+ String s = "<x> <p> <q> ." ;
+ CatchParserOutput sink = parseCapture(s, Lang.NQ) ;
+ assertEquals(1, sink.startCalled) ;
+ assertEquals(1, sink.finishCalled) ;
+ assertEquals(0, sink.triples.size()) ;
+ assertEquals(1, sink.quads.size()) ;
+
+ Triple t = SSE.parseTriple("(<x> <p> <q>)") ;
+ Quad q = new Quad(Quad.defaultGraphNodeGenerated, t) ;
+ assertEquals(q, last(sink.quads)) ;
+ }
+
+
+ @Test public void trig_dft_triple() {
+ // JENA-1854
String s = "{ <x> <p> <q> }" ;
CatchParserOutput sink = parseCapture(s, Lang.TRIG) ;
assertEquals(1, sink.startCalled) ;
@@ -164,7 +153,7 @@ public class TestParserFactory extends BaseTest
assertEquals(1, sink.quads.size()) ;
Triple t = SSE.parseTriple("(<http://base/x> <http://base/p>
<http://base/q>)") ;
- Quad q = new Quad(Quad.tripleInQuad, t) ;
+ Quad q = new Quad(Quad.defaultGraphNodeGenerated, t) ;
assertEquals(q, last(sink.quads)) ;
}