Как использовать SQWRL для запроса класса, который связан с человеком другого класса?

Я новичок в SQWRL, поэтому я делаю несколько тестов в онтологии, которую я создал в курсе.

В этой онтологии есть класс с именем BallpointPen, который имеет несколько видов шариковых ручек в качестве подклассов; Кроме того, есть класс с именем PenCharacteristic, который имеет возможные характеристики для ручек как отдельных лиц.

Я хочу проверить, какие шариковые ручки (которые являются подклассами класса BallpointPen) имеют характеристику Refillable (которая является представителем класса PenCharacteristic). Для этого я объявил следующий запрос SQWRL:

tbox:sca(?x, BallpointPen) ^ hasCharacteristic(?x, Refillable) -> sqwrl:select(?x)

Он должен указывать два ответа: классы MyInnovativeBallpointPen и RefillableBallpointPen, но он не показывает результатов. Может ли кто-нибудь помочь мне с этим?

1 ответ

После некоторых исследований я обнаружил, что запрос не может быть выполнен, по крайней мере, с SQWRL, потому что он не может работать с классами и экземплярами одновременно. Один из способов сделать это - превратить подклассы BallpointPen (которые включают в себя ответы на запрос, который я пытался сделать) в экземпляры.

Единственный способ сделать запрос таким, каким онтология в настоящее время является, - это использовать DL Query. На вкладке DL Query (в Protégé) просто введите и выполните:

BallpointPen and hasCharacteristic value Refillable

Это покажет правильные результаты.

Другие вопросы по тегам