2016-09-10 1 views
0

У меня есть входные N + 1 элементы, где N - роль/OWLObjectProperty, а последняя - понятие/OWLClass. Проблема заключается в том, что я должен произвести OWLClassExpression как этот, учитывая ввод (а, б, в):Рекурсивные аксиомы OWLAPI

OWLClassExpression axiom = factory.getOWLObjectSomeValuesFrom( factory.getOWLObjectProperty("#a") , factory.getOWLObjectSomeValuesFrom(factory.getOWLObjectProperty("#b", C)); 

Это легко, потому что у меня только 2 роли, но мне нужен общий решение для N ролей, поскольку я не могу предсказать вход пользователя. Аксиома будет вложенной, но я не знаю, есть ли возможность построить такую ​​структуру.

ответ

0

Возможно - вы можете заменить C вызовом метода, который рекурсивно строит ваше выражение, или вы можете уменьшить его до списка. Например, список свойств, которые вы перемещаете в обратном порядке, начиная с аксиоматического рычага (C) и обертывания ранее созданного объекта в новом выражении класса.

Однако, у owl api нет класса утилиты, чтобы сделать это, вам придется закодировать его с нуля.

 Смежные вопросы

  • Нет связанных вопросов^_^