Как решить Ошибка при запуске приложения: Ошибка создания слюны механизма запросов при использовании SWRL API?

Я получаю это сообщение об ошибке

Ошибка запуска приложения: Ошибка при создании механизма запросов Drools. Исключение: java.lang.NoSuchMethodError. Сообщение: 'void org.semanticweb.owlapi.util.PriorityCollection.add(java.io.Serializable)'

Я использую SWRL API для Java для выполнения запросов SQWRL в онтологиях OWL. Итак, я построил пример swrlapi edu.stanford.swrl из Maven, обновив в файле pom API swrl по умолчанию и swrlapi-drools-engine с версий 1.0.3 до 2.0.9 и API совы с 4.2.3 до 5.1 по умолчанию. 17. Я запускаю этот код в исполняемом файле main:

OWLOntologyManager ontologyManager = OWLManager.createOWLOntologyManager();

        File file = new File("C:\\Users\\Hugo\\Desktop\\Universidad\\SUPAERO\\S4\\SWRLapiTEST\\Prueba.owl");

  OWLOntology ontology = ontologyManager.loadOntologyFromOntologyDocument(file); 

    ontologyManager.createOntology();

     SQWRLQueryEngine queryEngine = SWRLAPIFactory.createSQWRLQueryEngine(ontology);

Программа останавливается на последней команде. Я не знаю, что делаю не так. Если я использую swrl api и swrlapi-drools-engine версии 1.0.3, он работает, но я хотел использовать некоторые команды, встроенные в библиотеки tbox и abox, которые не реализованы в этой древней версии.

1 ответ

Исключение, которое вы видите, является признаком нескольких несовместимых версий OWLAPI в вашем пути к классам. Убедитесь, что у вас используется только одна версия (5.1.17 из того, что вы говорите). Если вы не можете найти проблему, добавьте подробности о том, как вы устанавливаете свой путь к классам (вы можете напечатать переменную среды java.class.path в начале вашего кода, чтобы получить точный используемый путь к классам).

Другие вопросы по тегам