# imports: http://www.mckesson.com/life/snomed-ct.ontology.owl
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix sct: <http://www.mckesson.com/life/snomed-ct.ontology.owl#> .
@prefix ex: <http://www.example.com#> .
<http://www.example.com>
rdf:type owl:Ontology ;
owl:imports
<http://www.mckesson.com/life/snomed-ct.ontology.owl> .
The SNOMED ontology is available on the classpath with the path
FactRepository/Common/models/snomed-ct.ttl .
The three test methods are shown below. The key observation is that
in the third one the
StreamsManager does not honor the altEntry and tries to resolve over
the internet.
/**
* Proves that setting an AltEntry in FileManager is honored by
FileManager
*/
public void testLoadWithFileManagerFromAltEntry()
{
FileManager mgr = FileManager.get();
mgr.getLocationMapper().addAltEntry
("http://www.mckesson.com/life/snomed-ct.ontology.owl",
"FactRepository/Common/models/snomed-ct.ttl");
Model m = FileManager.get().loadModel(
"http://www.mckesson.com/life/snomed-ct.ontology.owl");
assertNotNull("Model should be non null", m);
assertTrue("Model should be non empty", m.size()>0);
}
/**
* Shows that setting up an AltEntry in StreamManager does get
honored by
* the StreamManager
*/
public void testLoadOntologyWithStreamManagerFromAltEntry()
{
FileManager fileMgr = FileManager.get();
fileMgr.getLocationMapper().addAltEntry
("http://www.mckesson.com/life/snomed-ct.ontology.owl",
"FactRepository/Common/models/snomed-ct.ttl");
Model model = ModelFactory.createDefaultModel();
InputStream stream =
getClass().getResourceAsStream("myontology.ttl");
model.read(stream, null, "TTL");
StreamManager streamMgr =
StreamManager.makeDefaultStreamManager();
streamMgr.getLocationMapper().addAltEntry
("http://www.mckesson.com/life/snomed-ct.ontology.owl",
"FactRepository/Common/models/snomed-ct.ttl");
StreamManager.setGlobal(streamMgr);
/*
* No error is logged from OntDocumentManager
*/
OntModel ont =
ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_TRANS_INF, model);
}
/**
* Shows that setting up an AltEntry in FileManager does not get
honored by
* the StreamManager
*/
public void testLoadOntologyWithFileManagerFromAltEntry()
{
FileManager fileMgr = FileManager.get();
fileMgr.getLocationMapper().addAltEntry
("http://www.mckesson.com/life/snomed-ct.ontology.owl",
"FactRepository/Common/models/snomed-ct.ttl");
Model model = ModelFactory.createDefaultModel();
InputStream stream =
getClass().getResourceAsStream("myontology.ttl");
model.read(stream, null, "TTL");
/*
Logs
WARN OntDocumentManager:1077 - An error occurred while attempting to
read from http://www.mckesson.com/life/snomed-ct.ontology.owl. Msg was
'404 - not found'.
org.apache.jena.atlas.web.HttpException: 404 - not found
*/
OntModel ont =
ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_TRANS_INF, model);
}
-----Original Message-----
From: Andy Seaborne [mailto:[email protected]]
Sent: Wednesday, October 30, 2013 4:11 PM
To: [email protected]
Subject: Re: Replacing FileManager (WAS use of recent features from
httpclient)
On 24/10/13 15:59, Altmann, Michael wrote:
Thanks, I was not aware of the change. I have code that configures
the global FileManager. It sets the locators, locations and
prefixes. Should I change that code to only manipulate the global
StreamManager or manipulate it in addition to the FileManager? I
looked around in the documentation a bit, but I still see this page
http://jena.apache.org/documentation/notes/file-manager.html , which
focuses on the FileManager.
At what point do you reconfigure the global FileManager? Before any
read/write atall? Maybe the reset is being doen after you changed it.
I've just looked at the code and I can believe the you can set the
global FileManager configuration, then cause RIOT to kick in and so
loose the configuration.
If you call:
IO_Jena.wireIntoJena()
it explicitly forces the reconfiguration. It starts:
FileManager.setGlobalFileManager(AdapterFileManager.get()) ;
If that wortks, it'll confirm my suspicion and I can put in a
automatic kickstart.
> http://jena.apache.org/documentation/notes/file-manager.html
That could do with rewriting but it should be compatible.
Andy
[This thread is probably evolving to something that ought to be on the
users list. Should we move it? ]
-----Original Message-----
From: Rob Vesse [mailto:[email protected]]
Sent: Thursday, October 24, 2013 9:26 AM
To: [email protected]
Subject: Re: Replacing FileManager (WAS use of recent features from
httpclient)
Michael
The issue is that recent versions of Jena delegate IO to ARQs RIOT
subsystem which has a separate StreamManager which manages how
resources are opened.
You can replace this like so:
StreamManager mgr = StreamManager.makeDefaultStreamManager();
// Clear out default setup
mgr.clearLocators();
// Add back ability to read from files mgr.addLocator(new
LocatorFile(null)); // Optionally add back ability to read from class
path mgr.addLocator(new
LocatorClassLoader(StreamManager.getClass().getClassLoader()));
StreamManager.setGlobal(mgr);
Hope this helps,
Rob
On 24/10/2013 14:45, "Altmann, Michael" <[email protected]>
wrote:
[Altmann, Michael] ...