【发布时间】:2020-04-21 20:06:57
【问题描述】:
在浏览了 grakn 开发文档后,我想知道:
- 关系可以有许多角色扮演者,包括角色扮演者。属性,但是
- 我还可以为关系分配属性
有什么优点/缺点?你有一个很好的例子说明什么时候做哪个有意义,以及它对查询的后果是什么?
【问题讨论】:
标签: attributes relationship vaticle-typedb
在浏览了 grakn 开发文档后,我想知道:
有什么优点/缺点?你有一个很好的例子说明什么时候做哪个有意义,以及它对查询的后果是什么?
【问题讨论】:
标签: attributes relationship vaticle-typedb
属性既可以在关系中扮演角色,也可以被拥有。你需要什么应该由你的领域模型和你想要实现的东西来驱动,而不是什么是可能的。
一个普遍的想法是每个角色扮演者添加语义信息,以帮助定义它正在扮演的角色的关系实例的含义。另一方面,拥有一个属性会向已经有意义的数据添加附加信息.
所以我们可以想象在person 和company 之间的contract 有个人和公司作为角色扮演者,我们添加一个date 属性来表示合同开始和结束的时间。但是,如果我们将合同定义为语义不同的limited-time-contract,那么让start-date、end-date、person、company 在limited-time-contract 关系中扮演角色可能更有意义。
一种稍微不同的思考方式是,扮演角色的属性为该属性在关系中的作用提供了额外的上下文。直接所有权不包含更多信息。
【讨论】: