diff --git a/lib/src/sparql/json_results.rs b/lib/src/sparql/json_results.rs index 352acccc..896484b7 100644 --- a/lib/src/sparql/json_results.rs +++ b/lib/src/sparql/json_results.rs @@ -386,7 +386,7 @@ impl ResultsIterator { Some(Type::Literal) => { let value = value.ok_or_else(|| { invalid_data_error( - "uri serialization should have a 'value' key", + "literal serialization should have a 'value' key", ) })?; Ok(match lang { diff --git a/lib/src/sparql/xml_results.rs b/lib/src/sparql/xml_results.rs index 6d1e3091..e3f6b11c 100644 --- a/lib/src/sparql/xml_results.rs +++ b/lib/src/sparql/xml_results.rs @@ -574,7 +574,14 @@ impl ResultsIterator { } state = State::Triple; } - State::Uri | State::BNode => state = self.stack.pop().unwrap(), + State::Uri => state = self.stack.pop().unwrap(), + State::BNode => { + if term.is_none() { + //We default to a random bnode + term = Some(BlankNode::default().into()) + } + state = self.stack.pop().unwrap() + } State::Literal => { if term.is_none() { //We default to the empty literal