2014-10-29 3 views
1

Я создал простой OWL онтологию в Protege, которая описывает человеческие отношения:Почему этот DL-запрос не возвращает ожидаемые результаты?

  • Классы: человек, мужчина, женщина
    • Человек супер класс мужчины и женщины
    • Мужчина и женщина не пересекаются
  • Свойство объекта: имеетРебенок
    • Его Доман и диапазон Person
  • Лицо: а (Man), б (Man), с (Man) --- х (женщина), у (женщина), г (женщина)
  • : Утверждения
    • имеетРебенок х
    • имеетРебенок у
    • с имеетРебенка

Теперь я хочу, чтобы запросить все лицо, чьи дети только дочь , Я написал этот запрос на вкладке запросов DL:

Person and hasChild only Woman 

Но он не возвращает экземпляров! Или простой запрос для лиц, которые имеют только двое детей

Person and hasChild exactly 2 

Оба эти запросы не возвращает экземпляров, Может кто-нибудь пожалуйста, скажите мне, в чем проблема?

СООБЩЕНИЕ

ответ

4

У DL есть Успенский мир (OWA). Это означает, что знания, которые фиксируются в онтологии, являются неполными. Альтернативой является Closed World Assumption (CWA), которая используется, например, в базах данных. В CWA все, что не объявлено, отсутствует.

Согласно OWA, все, что мы знаем из онтологии выше, состоит в том, что a и c имеют детей. Мы не знаем, имеет ли более одного ребенка, так как x и y могут быть одинаковыми (чтобы избежать этой ситуации, следует использовать аксиому DifferentIndividuals()). Мы не знаем, являются ли они единственными детьми: в открытом мире у любого человека могут быть другие дети любого пола, которые опущены в онтологии. Вот почему ответ на этот запрос - пустой набор.

Самый простой способ получить ожидаемый ответ os до Закрыть Знание.Если онтология будет содержать аксиому

a instanceOf (hasChild only {x,y})

тогда станет ответом первого запроса. Если, кроме того, аксиома

DifferentIndividuals(x,y)

будет добавлена, то второй запрос будет возвращать. Protege позволяет легко сделать аксиомы 2-го типа.

+0

Hi Dmitry. Я искренне благодарен за ваш полезный ответ! благодаря –