Я использовал owl-api версии 3.5 и теперь хотел бы перейти на версию 4, но получаю исключение во время выполнения. Как и в следующем примере кода (который отлично работает с версией 3.5), ошибка java.lang.NoSuchMethodError возникает каждый раз при вызове функции «manager.addAxiom(...)».
WLOntologyManager manager = OWLManager.createOWLOntologyManager();
IRI ontologyIRI = IRI.create("http://example.com/owlapi/families");
OWLOntology ont = manager.createOntology(ontologyIRI);
OWLDataFactory factory = manager.getOWLDataFactory();
OWLIndividual john = factory.getOWLNamedIndividual(IRI.create(ontologyIRI + "#John"));
OWLIndividual mary = factory.getOWLNamedIndividual(IRI.create(ontologyIRI + "#Mary"));
OWLObjectProperty hasWife = factory.getOWLObjectProperty(IRI.create(ontologyIRI + "#hasWife"));
OWLObjectPropertyAssertionAxiom axiom1 = factory.getOWLObjectPropertyAssertionAxiom(hasWife, john, mary);
manager.addAxiom(ont, axiom1);
...
Все выброшенное исключение говорит:
Exception in thread "main" java.lang.NoSuchMethodError: org.semanticweb.owlapi.model.OWLOntologyManager.addAxiom(Lorg/semanticweb/owlapi/model/OWLOntology;Lorg/semanticweb/owlapi/model/OWLAxiom;)Lorg/semanticweb/owlapi/model/parameters/ChangeApplied;
at de.ifak.Writer.OWL.Example.OWLMinimalTest.main(OWLMinimalTest.java:26)
Я протестировал код в чистом проекте Java и добавил руководство по зависимостям owl-api, а затем и maven. Я тестировал его с версиями 4.0.2 и 4.1.0-RC2. Оба показали одинаковое поведение.
Я не мог найти никакого решения для этого. Поэтому я надеюсь, что кто-то может мне помочь.
Спасибо,
Крис