owlcs / owlapi

OWL API main repository
822 stars 315 forks source link

can not load an ontology from disk #1017

Closed gdhzLZ closed 2 years ago

gdhzLZ commented 3 years ago

Hi, I am a freshman in owlapi. Now I am trying to load an ontology from my computer disk. But there is a bug. The code and the exception information are (the ontology is downloaded from https://data.bioontology.org/ontologies/IDO/submissions/9/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb ):

OWLOntology o1 = OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(new File(filename)) Exception in thread "main" org.semanticweb.owlapi.model.UnloadableImportException: Could not load imported ontology: http://purl.obolibrary.org/obo/MF/external/ontology-metadata-slim.owl Cause: https://raw.githubusercontent.com/jannahastings/mental-functioning-ontology/master/ontology/external/ontology-metadata-slim.owl at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.makeLoadImportRequest(OWLOntologyManagerImpl.java:1878) at org.semanticweb.owlapi.owlxml.parser.OWLImportsHandler.endElement(PARSER_OWLXMLVocabulary.java:3289) at org.semanticweb.owlapi.owlxml.parser.OWLXMLParserHandler.endElement(OWLXMLParserHandler.java:514) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:610) at com.sun.org.apache.xerces.internal.impl.dtd.XMLNSDTDValidator.endNamespaceScope(XMLNSDTDValidator.java:226) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2007) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:881) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1784) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2969) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:113) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:507) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:867) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:796) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:142) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:644) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:328) at org.semanticweb.owlapi.owlxml.parser.OWLXMLParser.parse(OWLXMLParser.java:60) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:221) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.actualParse(OWLOntologyManagerImpl.java:1262) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1215) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:1166) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:1178) at Test.TestForgetting.main(TestForgetting.java:1299) Caused by: org.semanticweb.owlapi.io.OWLOntologyCreationIOException: https://raw.githubusercontent.com/jannahastings/mental-functioning-ontology/master/ontology/external/ontology-metadata-slim.owl at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:231) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.actualParse(OWLOntologyManagerImpl.java:1262) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1215) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1115) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadImports(OWLOntologyManagerImpl.java:1833) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.makeLoadImportRequest(OWLOntologyManagerImpl.java:1871) ... 24 more Caused by: java.io.FileNotFoundException: https://raw.githubusercontent.com/jannahastings/mental-functioning-ontology/master/ontology/external/ontology-metadata-slim.owl at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1950) at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1945) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1944) at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1514) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268) at org.semanticweb.owlapi.io.AbstractOWLParser.getInputStreamFromContentEncoding(AbstractOWLParser.java:179) at org.semanticweb.owlapi.io.AbstractOWLParser.getInputStream(AbstractOWLParser.java:141) at org.semanticweb.owlapi.io.AbstractOWLParser.getInputSource(AbstractOWLParser.java:264) at org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:72) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:221) ... 29 more Caused by: java.io.FileNotFoundException: https://raw.githubusercontent.com/jannahastings/mental-functioning-ontology/master/ontology/external/ontology-metadata-slim.owl at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1896) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498) at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3061) at java.net.URLConnection.getContentEncoding(URLConnection.java:522) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getContentEncoding(HttpsURLConnectionImpl.java:424) at org.semanticweb.owlapi.io.AbstractOWLParser.getInputStream(AbstractOWLParser.java:136) ... 32 more Could you help me ? Thanks a lot!

ignazio1977 commented 3 years ago

The problem is here:

Could not load imported ontology: http://purl.obolibrary.org/obo/MF/external/ontology-metadata-slim.owl 

This imported ontology refers to another ontology:

Cause: https://raw.githubusercontent.com/jannahastings/mental-functioning-ontology/master/ontology/external/ontology-metadata-slim.owl

This file is no longer available, looking at the GitHub project it was either renamed or deleted.

The problem is not in your code - the ontologies you're trying to load are relying on other ontologies that need to be updated because external resources have changed. That needs fixing, or your local copy amended to no longer import these ontologies. I can't tell which approach is more feasible; I'd start by opening an issue with the projects involved and see if the maintainers have advice for you.