从 "compute path" 中的路径获取边缘属性

Getting edge attributes from path in "compute path"

我查看了您文档中 "compute path" 的示例。

计算路径的结果是一个节点列表。

我想访问连接节点的边并从中获取属性。

可以吗?

你会如何推荐我这样做?

Grakn 是一个超图 - 它有超边而不是边。 Grakn 超边称为 relation。当你使用 compute count 时,你会得到一个 ConceptListrelationConcept 的一种类型,因此您将在此列表中找到最短路径上的关系 ID。

您可以通过遍历列表找到它们。对于每个元素,您可以获取 id 并进行查询以从其 id 及其属性中获取概念:

match $c id V12345; get;

当然是用 V12345 代替你找到的 ID。

这里有各种选择。检索到 c 的 Concept 对象后,您可以使用 concept.isRelation() (here) and then concept.attributes() (here) 来检查它是否是一个关系以获取属性。对 ConceptList.

中的每个 ID 执行此操作

或者,您可以通过一个查询完成所有这些:

match $c id V12345; $c isa relation; $c has attribute $a; get;

如果 V12345 不是关系,或者如果它没有属性,这将 return 没有结果。如果它是一种关系并且具有属性,那么您将针对每个属性获得一个答案。