2017-01-28 6 views
2

Я использую OWLAPI для проекта, и мне нужно сравнить две онтологии для различий между ними. Это игнорирует пустые узлы, так что, например, я могу определить, являются ли те же ограничения OWL в обеих онтологиях. Мне не только нужно знать, есть ли различия, но мне нужно выяснить, каковы эти различия. существует ли такая функциональность в OWLAPI, oz есть относительно простой способ сделать это?Сравнение онтологий в owlapi

ответ

2

Равенство между выражениями анонимного класса не основано на идентификаторах пустого узла. Анонимные выражения классов содержат только пустые узлы в текстовом выходе, а в памяти идентификаторы игнорируются. Поэтому проверка того, существует ли аксиома в онтологии, будет по умолчанию корректно соответствовать выражениям для вашего diff.

Это неправда для частных лиц - анонимные люди не могут быть одинаковыми среди онтологий, и это по спецификациям. Анонимный индивидуум в одной онтологии не может быть найден в другом, поскольку анонимные идентификаторы пользователя привязаны к содержательной онтологии.

Примечание: модульные тесты для OWLAPI должны выполнять очень похожую задачу, чтобы проверить, что онтология может быть проанализирована, написана и проанализирована снова без изменений (т. Е. Округляется между синтаксисом ввода и синтаксисом вывода), поэтому существует код, на который вы можете смотреть, чтобы вдохнуть вдохновение. См. TestBase.java - equal() method для получения более подробной информации. Это включает в себя код для работы с разными идентификаторами для анонимных лиц.

+0

Сравнивая онтологии, я понимаю, что анонимные люди не имеют идентификатора (так что внутренние идентификаторы здесь несущественны). Поэтому я хотел бы сравнить структуру анонимных узлов. Например, ограничение в контексте его подкласса: с учетом именованного подкласса, который появляется в обеих онтологиях, в каждой онтологии есть класс подкласс ограничения, в соответствии с которым ограничение является предметом тех же троек (свойство и объект) в оба случая. Это то, что мне нужно определить. –

+0

В вашем случае аксиомы подкласса должны быть равными .equals() друг к другу, поэтому вы можете взять аксиому из первой онтологии и проверить, содержит ли ее вторая онтология. – Ignazio

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