【问题标题】:Grakn - Attributes playing roles in Relations vs. Relations having attributesGrakn - 在关系中扮演角色的属性与具有属性的关系
【发布时间】:2020-04-21 20:06:57
【问题描述】:

在浏览了 grakn 开发文档后,我想知道:

  1. 关系可以有许多角色扮演者,包括角色扮演者。属性,但是
  2. 我还可以为关系分配属性

有什么优点/缺点?你有一个很好的例子说明什么时候做哪个有意义,以及它对查询的后果是什么?

【问题讨论】:

    标签: attributes relationship vaticle-typedb


    【解决方案1】:

    属性既可以在关系中扮演角色,也可以被拥有。你需要什么应该由你的领域模型和你想要实现的东西来驱动,而不是什么是可能的。

    一个普遍的想法是每个角色扮演者添加语义信息,以帮助定义它正在扮演的角色的关系实例的含义。另一方面,拥有一个属性会向已经有意义的数据添加附加信息.

    所以我们可以想象在personcompany 之间的contract 有个人和公司作为角色扮演者,我们添加一个date 属性来表示合同开始和结束的时间。但是,如果我们将合同定义为语义不同的limited-time-contract,那么让start-dateend-datepersoncompanylimited-time-contract 关系中扮演角色可能更有意义。

    一种稍微不同的思考方式是,扮演角色的属性为该属性在关系中的作用提供了额外的上下文。直接所有权不包含更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 2016-04-26
      相关资源
      最近更新 更多