Странное поведение запроса в OWL!
В OWL этот запрос работает нормально
"person and hasChild min 3"
это работает нормально, и это дает мне всех людей, которые имеют более 3 детей
но этот не работает
"person and hasChild max 3"
это должно дать мне всех людей, которые имеют менее 3 детей, однако это не работает
Кто-нибудь есть идеи по этому поводу?
почему "min" работает, а "max" не дает никаких результатов!??
Спасибо
2 ответа
Причина, по которой второй запрос "не работает", заключается в предположении об открытом мире и, возможно, об отсутствии уникального имени.
Скажи, что ты заявляешь:
John lives in Paris.
Mary lives in Paris.
На следующие вопросы ответчик OWL отвечает следующим образом.
Who lives in Paris? John, Mary
Does at least one thing live in Paris? YES
Do at least two things live in Paris? Maybe
Is Paris a person? Maybe
Is John and Mary the same thing? Maybe
Is Paris and Mary the same thing? Maybe
Does at most one thing live in Paris? Maybe
Всякий раз, когда рассуждатель OWL возвращается с Maybe, пользовательский интерфейс (такой как Protege) имеет тенденцию ничего не показывать.
Чтобы получить ответы, которые вы, вероятно, хотите, вам нужно добавить гораздо больше информации в базу знаний, например,
Mary is not John.
Everybody who lives in Paris is either John or Mary.
Надеюсь это поможет. Глядя на то, как мало просмотров ваши последние вопросы получили в Stack Overflow, я бы сказал, что лучше задать эти вопросы в списке рассылки Protege на данный момент. Или, что еще лучше, посмотрите архивы списков рассылки. Вопросы, связанные с предположением об открытом мире, возникают по крайней мере раз в неделю.
Чтобы добавить к очкам Каарела и прокомментировать ваш пример запроса, рассудитель посмотрит на заявленные вами тройки и спросит: "Могут ли быть другие заявленные тройки, которых у меня нет на данный момент, которые утверждают, что у этого человека есть дополнительные дети? что поставит их за предел "трех детей"? Поскольку ответ на этот вопрос "возможно", рассудитель не сможет сделать вывод (как факт), что у человека в вашем примере максимум трое детей.
Отрицательные утверждения довольно трудно обосновать из-за предположения об открытом мире. Ваш вопрос "человек не должен иметь более трех детей" сталкивается с этой проблемой. Чтобы добиться того, что вы ищете, вы можете утверждать, что этот человек набирает класс родителей, у которых трое детей или меньше. Опять же, если бы вы сделали это, вам, вероятно, не понадобился бы запрос в первую очередь.