2015-09-14 5 views
1

Я пытаюсь запустить Simple Hierarchy example of OWL API. Я включил owlapi-osgidistribution-4.0.2.jar и все библиотеки из его папки lib в путь к проекту. Однако я до сих пор один неразрешенный импорт:OWL API getAnnotationObjects метод не определен

import static org.semanticweb.owlapi.search.EntitySearcher.getAnnotationObjects; 

И один неопределенный метод, связанный с этим импорт:

for (OWLAnnotation anno : getAnnotationObjects(clazz, ontology)) { 
    anno.accept(le); 
} 

Я вижу, что EntitySearcher класс находится в библиотеке OWL API. Я что-то пропустил?

ответ

0

EntitySearcher находится в модуле owlapi-api, поэтому его можно найти в вашем пути к классам.

Этот пример скомпилирован с каждой сборкой owlapi, поэтому он не должен представлять особых проблем.

Примечание: Я не могу вспомнить, был ли добавлен метод, о котором вы указали, до или после выпуска 4.0.2. Возможно, что он был добавлен для 4.1.0.

+0

Проблема была версия библиотеки, как вы отметили. Самая новая библиотека на sourceforge.net - 4.0.2, и я не знал, что доступна более высокая версия. – Zuku

+0

4.1.0 еще не выпущен: это ветка версии4 в GitHub. – Ignazio

+0

Я понимаю. Но в этом случае я думаю, что примеры должны быть совместимы с последней выпущенной версией;) – Zuku

0

Вчера я столкнулся с тем же случаем проблемы, интересным совпадением.

Код, который вы ищете, должен работать с последней версией OWL API, а именно 4.1.0-RC4. Я нашел намеки на проблему, просматривая mailing list. К сожалению, единственная доступная упакованная версия прямо сейчас - 4.0.2, а последняя версия в репозиториях Maven - это 4.1.0-RC2, которая не поставляется с методом, используемым в этом примере.

То, как я временно «решил» проблему, заключался в использовании таргетинга Maven для таргетинга версии 4.1.0-RC2 и добавлении к пути к классу двоичного дистрибутива для 4.1.0-RC4, построенного из репозитория git (переопределения одного для более ранняя версия разрешена Maven).

Предполагая, что вы знаете, как использовать Maven, это соответствующая запись файла POM:

<dependency> 
     <groupId>net.sourceforge.owlapi</groupId> 
     <artifactId>owlapi-osgidistribution</artifactId> 
     <version>4.1.0-RC2</version> 
</dependency> 

Чтобы построить последнюю версию OWL API, просто клонировать репозиторий или загрузить его в виде архива , извлеките, а затем запустите mvn clean install: банку, которую вы хотите добавить в свой путь к классам, должны присутствовать в каталоге ./distribution/target/.

Вы также, вероятно, получить некоторые предупреждения о регистраторе, если вы хотите, чтобы исправить это, а вам нужно получить тарболл из slf4j с версией соответствия тот, который был разрешен Maven (из here, версия I используется 1.7.7), постройте его, а затем добавьте slf4j-simple-#.#.#.jar в ваш путь к классам.

Надеюсь, это поможет.

+0

Действительно, пример кода версии 4.1.0-RC4 отлично работает. Я не знал, что версия 4.0.2 выше. Однако я узнал, что 4.1.0-RC4 можно скачать здесь -> https: //oss.sonatype.орг/содержание/Хранилища/моментальные снимки/нетто/SourceForge/owlapi/owlapi-osgidistribution/4.1.0-RC4-ПАНОРАМА / – Zuku