【发布时间】:2020-04-27 16:22:14
【问题描述】:
我浏览了您文档中“计算路径”的示例。
计算路径的结果是节点列表。
我想访问连接节点的边并从中获取属性。
可以这样做吗?
你会如何建议我这样做?
【问题讨论】:
标签: vaticle-typedb vaticle-typeql
我浏览了您文档中“计算路径”的示例。
计算路径的结果是节点列表。
我想访问连接节点的边并从中获取属性。
可以这样做吗?
你会如何建议我这样做?
【问题讨论】:
标签: vaticle-typedb vaticle-typeql
Grakn 是一个超图——它有超边而不是边。 Grakn 超边称为relation。当你使用compute count 时,你会得到一个ConceptList。 relation 是 Concept 的一种类型,因此您将在此列表中找到最短路径上的关系 ID。
您可以通过遍历列表来找到它们。对于每个元素,您可以获取 id 并进行查询以从其 id 中获取概念及其属性:
match $c id V12345; get;
当然,用 V12345 代替您找到的 id。
你有各种各样的选择。检索到 c 的概念对象后,您可以使用 concept.isRelation() (here) 和 concept.attributes() (here) 来检查它们是否是一个关系来获取属性。对ConceptList 中的每个 ID 执行此操作。
或者,您可以通过一个查询完成所有这些操作:
match $c id V12345; $c isa relation; $c has attribute $a; get;
如果 V12345 不是关系,或者它没有属性,这将不返回任何结果。如果它是一个关系并且具有属性,那么您将获得每个属性的一个答案。
【讨论】: