vaticle-typedb - 在 n 元关系中指定角色的动态数量
问题描述
我知道 Grakn 允许我们指定 n 元边/关系。但是,当我们事先不知道“多”的大小时,它们是否允许我们指定多对一关系?
例如:
如果我想将两个实体“a”和“b”连接到实体“c”,我可以这样做。但是,如果我事先不知道有多少实体要连接到“c”,该怎么办。如果我想保持这种动态怎么办?(有时将 2 个实体连接到 1 个或 4 个实体连接到 1 个)Grakn 是否允许我代表它?
我希望我能够清楚地描述我的问题。
请告诉我。谢谢你。
解决方案
在 Grakn 中,这些多对一连接(其中“多”是动态的)可以存储为关系实例本身。
例如,假设您有一个家庭,父母有一些孩子,但我们不知道有多少孩子,并且可以随时添加新孩子。
然后你会
define
name sub attribute, datatype string;
person sub entity, has name, plays parent, plays child;
parenthood sub relation, relates parent, relates child;
现在假设您已经匹配了四个人,$a、$b、$c 和 $d,那么您可以通过插入两个parenthood
实例来建立 2 对 1 的关系:
insert (parent: $a, child: $b) isa parenthood;
insert (parent: $a, child: $c) isa parenthood;
当您插入第三个时,它变成了 3 对 1 的关系parenthood
:
insert (parent: $a, child: $d) isa parenthood;
等等。
推荐阅读
- swift - 从导航控制器回到视图控制器?
- java - 关于spring-data中实体之间的映射
- symfony - Symfony 4 和 Behat:如何注入实体管理器
- java - 将 JSP 部署给用户,例如 setup.exe 或 .dmg 文件
- scala - 如何将 Window 函数应用于 DataFrame 中的多个列
- c# - Windows 模板工作室 - 导航
- node.js - 如何使用猫鼬访问模型数据?
- ios - 从 NSExpression 分配给 MGLStyleValue 的不兼容指针类型
- c# - 删除父节点但不删除子节点 XmlElement
- url - 为什么 woo-commerce 单品页面 URL 以页码结尾?