Как решить Ошибка при запуске приложения: Ошибка создания слюны механизма запросов при использовании 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 в начале вашего кода, чтобы получить точный используемый путь к классам).