首页 > 解决方案 > 如何在尝试将特定 Grakn 实例插入 KG 之前检查它是否已经存在?

问题描述

假设一个 Grakn KG 包含类型为“product”的实体,并且它们由“id_prod”唯一标识。据我了解,尝试插入具有重复 id_prod 的产品实例会产生错误。

假设插入是通过控制台脚本完成的,那么在插入过程中如何使用 graql 检查实例的先前存在?通过 python 客户端,有什么特别的建议或模式可以遵循吗?

标签: pythondatabasevaticle-typedbvaticle-typeqlknowledge-graph

解决方案


你的断言是正确的。目前 Graql 没有PUT内置的行为来检查是否存在并仅在不存在时插入。这是将来应该包含的功能(我在 Grakn 工作)。

相反,您有两种选择:

  1. match通过他们的钥匙获得概念。如果没有结果,那么你insert他们。然后,您可以match insert为键控概念添加关系等。
  2. 您首先确保已将所有关键概念插入到 KB 中(可能不可能)。然后,您match insert直接进行查询,匹配键控概念,无需检查键是否存在

推荐阅读