【问题标题】:Getting edge attributes from path in "compute path"从“计算路径”中的路径获取边缘属性
【发布时间】:2020-04-27 16:22:14
【问题描述】:

我浏览了您文档中“计算路径”的示例。

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

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

可以这样做吗?

你会如何建议我这样做?

【问题讨论】:

    标签: vaticle-typedb vaticle-typeql


    【解决方案1】:

    Grakn 是一个超图——它有超边而不是边。 Grakn 超边称为relation。当你使用compute count 时,你会得到一个ConceptListrelationConcept 的一种类型,因此您将在此列表中找到最短路径上的关系 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 不是关系,或者它没有属性,这将不返回任何结果。如果它是一个关系并且具有属性,那么您将获得每个属性的一个答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-08
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多