Защитить свойства обратного объекта - PullRequest
0 голосов
/ 01 декабря 2019

Я пытаюсь определить два свойства обратного объекта.

Свойства объекта:

  • hasChild
  • hasParent

Как очевидно, если JOHN hasParent ANNA, то ANNA hasChild JOHN. Похоже, что этого можно достичь, используя InverseOf Протеже, но затем, если мы примем ANNA is Happy, следующий запрос DL:

hasChild only Happy

также возвращает JOHN. Разумник объясняет, что hasChild is inverseOf hasParent. Может ли кто-нибудь помочь мне разобраться? Заранее спасибо!

1 Ответ

1 голос
/ 01 декабря 2019

hasChild only Happy является универсальным ограничением без сопутствующего ограничения существования. В предположении «Открытый мир» эти универсальные ограничения в конечном итоге включают всех определенных лиц, поскольку for all включает случаи, когда для свойства нет заполнителя.

Чтобы проверить, так ли это, создайте именованный класс, определенныйкак hasChild only Happy и проверьте, какие классы ему эквивалентны. Скорее всего, вы найдете owl:Thing в результатах. следовательно, все люди будут отвечать на этот запрос.

Чтобы избежать этого, добавьте hasChild some Happy к вашему запросу, чтобы перед выводом можно было указать заполнитель.

Однакообратите внимание, что вы хотите, чтобы родитель был счастлив. Может быть, вы хотели изменить направление и сказать hasParent only Happy?

...