有没有办法配置owlapi以避免从网络获取导入?我有IRIMappers,我希望一切都是本地化的。
我的症状是我错过了导入,我不知道是哪一个。如果我没有连接,我会得到这个异常:
Caused by: org.semanticweb.owlapi.io.OWLOntologyInputSourceException: java.net.UnknownHostException: purl.obolibrary.org
at org.semanticweb.owlapi.io.DocumentSources.getInputStream(DocumentSources.java:192)
at org.semanticweb.owlapi.io.DocumentSources.wrapInput(DocumentSources.java:121)
at org.semanticweb.owlapi.io.DocumentSources.wrapInputAsReader(DocumentSources.java:83)
at org.semanticweb.owlapi.io.DocumentSources.wrapInputAsReader(DocumentSources.java:100)
at org.semanticweb.owlapi.io.AbstractOWLParser.getInputSource(AbstractOWLParser.java:38)
at org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:59)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:192)
... 7 more使用5.1.4
发布于 2018-01-15 15:46:25
您可以使用AutoIRIMapper指向包含导入的本体副本的本地文件夹:
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
PriorityCollection<OWLOntologyIRIMapper> iriMappers = m.getIRIMappers();
iriMappers.add(new AutoIRIMapper(new File("materializedOntologies"), true));您还可以告诉管理器忽略导入失败,但这将给您留下一个不完整的本体闭包,这意味着推理将不准确。这是通过设置org.semanticweb.owlapi.model.parameters.ConfigurationOptions.MISSING_IMPORT_HANDLING_STRATEGY来实现的,它可以设置为系统属性,也可以在与管理器关联的OntologyConfigurator对象上设置。
https://stackoverflow.com/questions/48249813
复制相似问题