2015-12-07 1 views
1

Использование OWLAPI версии 3.5.0.Получить все OWLAnonymousClassExpressions через OWL-API

Возможно ли получить все OWLAnonymousClassExpressions в онтологии? Или даже OWLAnonymousClassExpressions, принадлежащие одному OWLClass?

+0

Можете ли вы пояснить, что вы подразумеваете под принадлежностью к классу совы? – Ignazio

+0

E.G .: Класс Parent имеет два суперкласса; имя класса и анонимное ограничение. Я хочу получить анонимное ограничение/OWLAnonymousClassExpression – farcy

+0

Можете ли вы проверить, соответствует ли ответ ниже вашего вопроса, и принять его, если так? – Ignazio

ответ

2

Вы можете получить прямые, утвержденные суперклассы для именованного класса из объекта OWLOntology, вызвав метод getSubClassAxiomsForSubClass.

Это вернет аксиомы с обоими видами суперкласса - анонимный и западный, ошибочный, я имею в виду именованный. Если вы перебираете результат, вы можете выбрать анонимные выражения класса с помощью метода isAnonymous. Если вам нужны косвенные суперклассы, вы можете рекурсивно извлекать аксиомы подкласса для любых именованных классов.

В зависимости от ваших требований вы также можете проверить эквивалентные классы аксиом, поскольку каждое выражение эквивалентного класса в аксиоме является суперклассом всех остальных. Они могут быть получены с использованием метода getEquivalentClassesAxioms.

Если вы выполняете родительские ссылки или расширяете эквиваленты, вам может потребоваться отслеживать именованные классы, которые вы уже обработали, в случае, если существуют циклы.

Если вы хотите включить выведенные суперклассы, а также непосредственно утвердившиеся, вы можете создать аргумент и использовать его для поиска названных суперклассов выбранного вами класса. Затем вы можете получить анонимные суперклассы, извлекая подклассы подкласса, как описано выше.

Сообщите мне, если это имеет смысл, или если образец кода будет полезен.

Редактировать: OWLClassExpressionCollector также может быть полезным, поскольку он собирает все выражения классов из любого OWLObject: онтология, аксиома или выражение.