On 16/12/2019 09:23, Andreas Kahl wrote:
Hello everyone,
I got this error while trying to load data from a URI to a Jena model:
http://viaf.org/viaf/32182557 (RDF-URL:
https://viaf.org/viaf/32182557/rdf.xml )
riot https://viaf.org/viaf/32182557/rdf.xml
works fine.
http://viaf.org/viaf/32182557 does not return RDF/XML.
> org.apache.jena.riot.lang.JsonLDReader.read(JsonLDReader.java:101)
^^^^^^^^^^^^
It is sending back JSON-LD
RIOT sends the default accept header (reformatted: with NL of remail):
text/turtle,
application/n-triples;q=0.9,
application/rdf+xml;q=0.7,
application/trig,
application/n-quads;q=0.9,
text/x-nquads;q=0.8,
application/x-trig;q=0.7,
application/ld+json;q=0.6,
*/*;q=0.5'
and the server chooses
Content-Type: application/ld+json
(despite the preference given by the q= setting - it isn't compeled to
respect them)
and the @context includes:
"" : "http://viaf.org/viaf/terms#",
(and also "ns1" : "http://viaf.org/viaf/terms#")
and jsonld-java objects.
You can request RDF/XML with:
RDFParser.create()
.httpAccept("application/rdf+xml")
.source("http://viaf.org/viaf/32182557")
.parse(m);
which work for me.
Andy
2019-12-16 09:55:09 WARN Spider:490 - Error parsing data from URI:
http://viaf.org/viaf/32182557
org.apache.jena.riot.RiotException: invalid term definition: empty key
for value 'http://viaf.org/viaf/terms#'
at
org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.error(ErrorHandlerFactory.java:140)
at
org.apache.jena.riot.lang.JsonLDReader.read$(JsonLDReader.java:162)
at
org.apache.jena.riot.lang.JsonLDReader.read(JsonLDReader.java:101)
^^^^^^^^^^^^
at org.apache.jena.riot.RDFParser.read(RDFParser.java:352)
at org.apache.jena.riot.RDFParser.parseURI(RDFParser.java:321)
at org.apache.jena.riot.RDFParser.parse(RDFParser.java:295)
at
org.apache.jena.riot.RDFParserBuilder.parse(RDFParserBuilder.java:506)
at org.apache.jena.riot.RDFDataMgr.parseFromURI(RDFDataMgr.java:890)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:221)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:102)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:93)
at org.apache.jena.riot.RDFDataMgr.loadModel(RDFDataMgr.java:335)
If I paste the rdf.xml to W3C's validator, it validates successfully.
(URL: source of https://viaf.org/viaf/32182557/rdf.xml ->
https://www.w3.org/RDF/Validator )
Is there any setting that should be used in order to make Riot more
tolerant to this?
The Jena version used is 3.13.1.
Thanks for your advice.
Best Regards
Andreas