2016-07-06 9 views
5

मैं एक सत्तामीमांसा शिष्य 4.3.0 में बनाया है और एक उल्लू फ़ाइल में संग्रहीत है। आदेश OWL API का उपयोग कर इस सत्तामीमांसा लोड करने के लिए में, मैं निम्नलिखित कोड नमूना का उपयोग करें।UnloadableImportException: आयात नहीं किया जा सका लोड सत्तामीमांसा

org.semanticweb:

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); 
    } 
} 

हालांकि, अगर मैं एक सत्तामीमांसा जो एक या अधिक आयात भी शामिल है, अगर इन आयात उपलब्ध नहीं हैं लोड करने का प्रयास, एक UnloadableImportException, निम्न उदाहरण के रूप में फेंक दिया है। owlapi.model.UnloadableImportException: लोड नहीं कर सका आयातित सत्तामीमांसा: http://www.w3.org/2004/02/skos/core कारण: कनेक्शन

कैसे इस समस्या को हल करने के लिए टाइम आउट हो गया? आयातित सत्तामीमांसा उपलब्ध ऑफ़लाइन है, तो कैसे मेरे सत्तामीमांसा लोड करने में इस सत्तामीमांसा आयात करने के लिए?

+0

ध्यान दें कि संरचनात्मक तार्किक एक पूरा तार्किक नहीं है। आप उचित तर्क की जरूरत है, साधु या गोली की तरह एक तार्किक का उपयोग करें। – Ignazio

उत्तर

3

आप AutoIRIMapper का उपयोग स्थानीय फ़ोल्डर को ऑटोलॉजीज़ की स्थानीय प्रतियों को इंगित करने के लिए कर सकते हैं।

AutoIRIMapper mapper=new AutoIRIMapper(folder, true); 
manager.addIRIMapper(mapper); 

ऑटोलॉजीज़ लोड करने से पहले ऐसा करें।

+0

owlapi v5 पुस्तकालय के लिए, इस का उपयोग करें: manager.getIRIMappers() (नक्शाकार) जोड़ने;। – tremendows

संबंधित मुद्दे