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





Reply via email to