Grakn - Атрибуты, играющие роли в отношениях против отношений, имеющих атрибуты - PullRequest
3 голосов
/ 21 апреля 2020

Изучив документацию grakn dev, я задаюсь вопросом:

  1. отношение может иметь много ролевых игроков, в т.ч. атрибуты, но
  2. Я также могу назначить атрибуты для отношения

Каковы плюсы / минусы? У вас есть хороший пример того, когда имеет смысл делать какие и каковы будут последствия для запроса?

1 Ответ

3 голосов
/ 22 апреля 2020

Атрибуты могут как играть роли в отношениях, так и быть принадлежащими . То, что вам нужно, должно зависеть от вашей доменной модели и того, что вы пытаетесь достичь, а не от того, что возможно.

Одна общая идея состоит в том, что каждый ролевый игрок добавляет семанти c информацию, которая помогает определить значение экземпляра отношения, в котором он играет роль. С другой стороны, владение атрибутом добавляет дополнительную информацию к пьесе. данных, которые уже значимы.

Таким образом, мы можем представить, что contract между person и company имеет человека и компанию в качестве ролевых игроков, и мы добавляем атрибут date, когда контракт начинается и заканчивается. Однако, если мы вместо этого определили контракт как семантически отличный limited-time-contract, то может иметь смысл иметь start-date, end-date, person, company, чтобы играть роли в отношении limited-time-contract.

Немного другой способ думать об этом состоит в том, что атрибуты, играющие роли, дают дополнительный контекст в том, как этот атрибут действует в отношении. Прямое владение не несет никакой дополнительной информации.

...