Почему этот запрос DL не возвращает ожидаемых результатов?

Я создал простую онтологию OWL в Protege, которая описывает человеческие отношения:

  • Классы: Человек, Мужчина, Женщина
    • Человек супер класс мужчины и женщины
    • Мужчина и Женщина не пересекаются
  • Свойства объекта: hasChild
    • Доман и диапазон - Персона
  • Частные лица: a (мужчина), b (мужчина), c (мужчина) --- x (женщина), y (женщина), z (женщина)
  • Утверждения:
    • hasChild x
    • hasChild y
    • c hasChild a

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

Person and hasChild only Woman

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

Person and hasChild exactly 2

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

Спасибо

1 ответ

Решение

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

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

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

a instanceOf (hasChild only {x,y})

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

DifferentIndividuals(x,y)

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

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