Как использовать 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
Это покажет правильные результаты.