OWL API V5 从本地文件读取 ontology
OWL API V5 read ontology from local file
在 link 的当前文档示例中:
https://github.com/owlcs/owlapi/blob/version5/contract/src/test/java/org/semanticweb/owlapi/examples/Examples.java
没有关于如何从本地文件加载 ontology 的示例。只有一种方法可以从字符串中加载它。
以前用owl-api版本3的时候
以下代码完美运行:
OWLOntologyManager manager =OWLManager.createOWLOntologyManager();
File file = new File (path);
OWLOntology ont = manager.loadOntologyFromOntologyDocument(IRI.create(file));
然而,在这个版本中,之前代码的最后一行:
manager.loadOntologyFromOntologyDocument(IRI.create(file));
returns 这个错误:
Exception in thread "main" java.lang.NoSuchMethodError:
org.semanticweb.owlapi.util.SAXParsers.initParserWithOWLAPIStandards(Lorg/xml/sax/ext/DeclHandler;)Ljavax/xml/parsers/SAXParser;
at
org.semanticweb.owlapi.rdf.rdfxml.parser.RDFParser.parse(RDFParser.java:148)
at org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:62)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:173)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:954)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:918)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:859)
at glass.main.ontology_Test_main2.readOntology(ontology_Test_main2.java:49)
at glass.main.ontology_Test_main2.main(ontology_Test_main2.java:38)
请注意附件,小测试java项目,link:
dropbox.com/s/3787a3gsk2bwc26/test.tar.gz?dl=0
请问我做错了什么,我确定这段代码
请您提供正确的方法,并将其添加到 link https://github.com/owlcs/owlapi/blob/version5/contract/src/test/java/org/semanticweb/owlapi/examples/Examples.java
中的教程示例中
非常感谢您的宝贵时间。
诚挚的问候
你离解决方案很近了:
final OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
final OWLOntology ontology = manager.loadOntologyFromOntologyDocument(new File("/home/galigator/myLocalDir/aura.owl"));
只需使用 new File 而不是 IRI.create
问题原因是:
我使用的以前的版本:
我使用的是 Hermit 版本 1.3.8.500 和 OWL-API 以前的版本 5.0.5 似乎已经修改了。
解决方法:使用更新版本的Hermit 1.3.8.510和OWL-API 5.1.0.
我发布了这个答案以防其他人使用以前的版本并受到影响。
诚挚的问候。
在 link 的当前文档示例中: https://github.com/owlcs/owlapi/blob/version5/contract/src/test/java/org/semanticweb/owlapi/examples/Examples.java 没有关于如何从本地文件加载 ontology 的示例。只有一种方法可以从字符串中加载它。
以前用owl-api版本3的时候 以下代码完美运行:
OWLOntologyManager manager =OWLManager.createOWLOntologyManager();
File file = new File (path);
OWLOntology ont = manager.loadOntologyFromOntologyDocument(IRI.create(file));
然而,在这个版本中,之前代码的最后一行:
manager.loadOntologyFromOntologyDocument(IRI.create(file));
returns 这个错误:
Exception in thread "main" java.lang.NoSuchMethodError:
org.semanticweb.owlapi.util.SAXParsers.initParserWithOWLAPIStandards(Lorg/xml/sax/ext/DeclHandler;)Ljavax/xml/parsers/SAXParser;
at
org.semanticweb.owlapi.rdf.rdfxml.parser.RDFParser.parse(RDFParser.java:148)
at org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:62)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:173)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:954)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:918)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:859)
at glass.main.ontology_Test_main2.readOntology(ontology_Test_main2.java:49)
at glass.main.ontology_Test_main2.main(ontology_Test_main2.java:38)
请注意附件,小测试java项目,link:
dropbox.com/s/3787a3gsk2bwc26/test.tar.gz?dl=0
请问我做错了什么,我确定这段代码
请您提供正确的方法,并将其添加到 link https://github.com/owlcs/owlapi/blob/version5/contract/src/test/java/org/semanticweb/owlapi/examples/Examples.java
中的教程示例中非常感谢您的宝贵时间。 诚挚的问候
你离解决方案很近了:
final OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
final OWLOntology ontology = manager.loadOntologyFromOntologyDocument(new File("/home/galigator/myLocalDir/aura.owl"));
只需使用 new File 而不是 IRI.create
问题原因是:
我使用的以前的版本: 我使用的是 Hermit 版本 1.3.8.500 和 OWL-API 以前的版本 5.0.5 似乎已经修改了。
解决方法:使用更新版本的Hermit 1.3.8.510和OWL-API 5.1.0.
我发布了这个答案以防其他人使用以前的版本并受到影响。 诚挚的问候。