Skip to content

Commit e935f38

Browse files
author
James Leigh
authored
Merge pull request #894 from jamesrdf/issues/#537-implicit-bnode
Fix #537: Report blank node object before subject statements
2 parents 41475ca + e8261d2 commit e935f38

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

core/rio/turtle/src/main/java/org/eclipse/rdf4j/rio/turtle/TurtleParser.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -473,9 +473,8 @@ protected void parseObject() throws IOException, RDFParseException, RDFHandlerEx
473473
object = parseImplicitBlank();
474474
} else {
475475
object = parseValue();
476+
reportStatement(subject, predicate, object);
476477
}
477-
478-
reportStatement(subject, predicate, object);
479478
}
480479

481480
/**
@@ -489,9 +488,15 @@ protected Resource parseCollection() throws IOException, RDFParseException, RDFH
489488
if (c == ')') {
490489
// Empty list
491490
readCodePoint();
491+
if (subject != null) {
492+
reportStatement(subject, predicate, RDF.NIL);
493+
}
492494
return RDF.NIL;
493495
} else {
494496
BNode listRoot = createBNode();
497+
if (subject != null) {
498+
reportStatement(subject, predicate, listRoot);
499+
}
495500

496501
// Remember current subject and predicate
497502
Resource oldSubject = subject;
@@ -538,6 +543,9 @@ protected Resource parseImplicitBlank() throws IOException, RDFParseException, R
538543
verifyCharacterOrFail(readCodePoint(), "[");
539544

540545
BNode bNode = createBNode();
546+
if (subject != null) {
547+
reportStatement(subject, predicate, bNode);
548+
}
541549

542550
int c = readCodePoint();
543551
if (c != ']') {

0 commit comments

Comments
 (0)