Skip to content

Свойства свойств (N-арные отношения)

Свойства OWL являются бинарными отношениями - связывают два экземпляра или экземпляр и скалярное значение. А что если нам требуется описать свойства отношения, например, его вероятность? Или описать отношение между более чем двумя экземплярами (N-арное отношение)?

Пусть, например, в нашей онтологии зафиксирован факт:

Если мы захотим зафиксировать дату займа и сумму займа, то синтаксис OWL не позволит нам это сделать.

Существует два пути обхода этой проблемы:

  • механизм реификации
  • моделирование отношений как классов

Реификация

Суть реификации состоит в том, чтобы рассматривать простые суждения как отдельные объекты - утверждения. Утверждением считается триплет вида: ❮Субъект, предикат, Объект❯. Данный триплет может быть определен как экземпляр класса Утверждение и сам использоваться как объект (или субъект) в других утверждениях. Это позволяет делать утверждения об утверждениях. Реификация позволяет, например, специфицировать, кто является автором утверждения, когда было сделано утверждение и т.д.

Вернемся к нашему примеру. Утверждение ❮Петров, занял деньги у, Иванов❯ (Петров здесь играет роль Субъекта, Иванов — Объекта, а занял деньги у — предиката) может быть объявлено как экземпляр класса Утверждение и использовано в других утверждениях.

Отношения как классы

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

В нашем примере мы не давали осмысленных имен экземплярам n-арных отношений, а просто маркировали их: отношение займа 1. Эти экземпляры являются вспомогательными для группировки других объектов, следовательно, отличительное имя не имеет смысла.

Совет

Для классов, которые моделируют отношения, имеет смысл задать правило имяобразования экземпляров, чтобы не указывать названия экземпляров-отношений вручную (см. руководство по имяобразованию)

Задание для закрепления материала

Используя подход моделирования свойств отношений с помощью классов, формализуйте (постройте онтологию) следующее утверждение: Иван приобрел книгу "Гарри Поттер и Кубок огня" в магазине Ozon за 499.99 рублей в качестве подарка на день рождения другу.

Используйте следующие термины при разработке онтологии:

  • для классов: Персона, Магазин, Товар, Назначение товара, Отношение покупка
  • для свойств и отношений: покупатель, продавец, товар, цена, руб., назначение