I can't tell from the trace whether you are mapping the import URLs to local files or are loading directly from the URL. If loading from local files then you really need suffixes on those. I'll assume you are loading from the URL ...

OntModels use a somewhat older stack of tools (FileManager) which guesses the language based on the suffix, with a default of RDF/XML, and then relies on content negotiation to deliver the guessed format. Since your resources don't support conneg and don't support RDF/XML (the official default) that's not going to work.

One option might be to create a subclass of FileManager which overrides readModelWorker to either load the data via the newer RDFDataMgr which has more sophisticated conneg support, or to change the default syntax to Turtle. Then install that FileManager in the OntDocumentManager you use for your loading.

Dave


On 07/03/18 04:28, lewis john mcgibbney wrote:
Hi Folks,

Over on the SWEET ontology suite [0] we recently changed out canonical
serialization to TTL. Additionally however, we removed all file suffixes
from the resources themselves, therefore although the following resource
[1] is serialized as TTL, you would never know unless you looked at it or
peeked into the server response.

I am experiencing issues when I attempt to load the SWEET 'master' file
[2], which essentially produces a graph by importing every file within the
ontology suite. The code I use to do this is as follows.

((OntModel) m).read(url, null, lang); //Where lang is the string "TTL" or
"TURTLE" depending on previous logic.

The stack trace I get is as follows [3]

As you can see it loads the sweetAll file correctly but chokes on the
imported resource http://sweetontology.net/realmSoil, which is also a TTL
serialization but with no file suffix. The stack trace indicates that an
attempt is being made to parse the resource as RDF/XML... which in this
case is incorrect.

Any hints on how to override/define this behaviour?

Another related question, the large stack trace I receive from the above
parsing activity seems to also indicate that the OntModel.read logic
randomly processes imports when processing a resource such as [2]. Is this
correct?

Thanks for any hits folks, I appreciate it.
Lewis

[0] http://sweetontology.net
[1] http://sweetontology.net/reprDataProduct
[2] http://sweetontology.net/sweetAll
[3] https://paste.apache.org/vLt8

Reply via email to