Graql 插入查询:重复的 Var 对象

Graql insert query: duplicate Var objects

Var message = var().isa("message");
insert(message).execute();

Var relation = var().isa("connection")
    .rel("role1", id("existing-id"))
    .rel("role2", message);
insert(relation).execute();

执行以下命令会创建一条消息的两个实例。

这是预期的吗?如果是,是因为我没有分配ID,还是因为我用了两个insert语句?

这是预期的行为。您猜测分配 id 将解决问题是正确的:

Var message = var().id("my-message").isa("message");

发生这种情况的原因是因为 Var 不代表单个概念。相反,它表示要在图中匹配的模式。在这种情况下,Var 只说 "things that are messages",而不是任何特定的消息。

您还可以指定一个变量名,例如Var message = var("x"). ... 为此,您只需执行一个 insert.