Ho un'ontologia creata in Protege 4.3.0 e memorizzata in un file OWL. Per caricare questa ontologia utilizzando OWL API, utilizzo il seguente codice di esempio.UnloadableImportException: Impossibile caricare ontologia importata
public class MySampleClass {
private final OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
private final OWLDataFactory df = manager.getOWLDataFactory();
private final OWLReasonerFactory rf = new StructuralReasonerFactory();
private final OWLOntology ontology;
private final OWLOntologyID id;
private final IRI iri;
private final PrefixManager pm;
private final OWLReasoner reasoner;
/**
*
* @param file
*/
public MySampleClass(File file) {
try {
ontology = manager.loadOntologyFromOntologyDocument(file);
} catch (OWLOntologyInputSourceException | OWLOntologyCreationException ex) {
// throw custom exception
}
id = ontology.getOntologyID();
iri = id.getOntologyIRI();
pm = new DefaultPrefixManager(iri.toString().concat("#"));
reasoner = rf.createReasoner(ontology);
reasoner.precomputeInferences(InferenceType.OBJECT_PROPERTY_ASSERTIONS);
}
}
Tuttavia, se provo a caricare un'ontologia che include uno o più importazioni, se tali importazioni non sono disponibili, un UnloadableImportException è gettato, come il seguente esempio:
org.semanticweb. owlapi.model.UnloadableImportException: Impossibile caricare ontologia importati: http://www.w3.org/2004/02/skos/core Causa: connessione scaduta
Come risolvere questo problema? Se l'ontologia importata è disponibile offline, come importare questa ontologia durante il caricamento della mia ontologia?
Si noti che il ragionatore strutturale non è un ragionatore completo. Se hai bisogno di un adeguato ragionamento, usa un ragionatore come Hermit o Pellet. – Ignazio