TypeDB(以前称为 Grakn)中的实体是否始终需要唯一标识符?

Does an entity in TypeDB (formerly Grakn) need always a unique identifier?

我在我的图形知识库中为不同的人定义一个模式。一个人实体在其属性群中当然是独一无二的。但是,从理论上假设我们有两个同名的人(“John Doe”)并且其他一切都相同,年龄,出生地等。如果我不插入个人 ID,TypeDB 会将他们视为同一个人吗?我试图了解 TypeDB 如何区分其数据结构中的不同实体。例如,如果两个人只是在一个属性上不同,那么 TypeDB 会不会有两个不同的 John Doe 实例?

你会得到两个 John Doe 的实例。验证pretty-easy; TypeDB 中的每个实体都有一个内部标识符(称为 iid)。如果您打开控制台并执行此插入语句(假设兼容模式)两次,您将返回两个具有不同 iid 的实体:

insert $p isa person, has first_name "John";

结果:

db-name::data::write*> insert $p isa person, has first_name "John";

{ $p iid 0x826e80097ffffffffffffffd isa person; $_0 "John" isa first_name; }
answers: 1, total (with concept details) duration: 12 ms
db-name::data::write*> insert $p isa person, has first_name "John";

{ $p iid 0x826e80097ffffffffffffffc isa person; $_0 "John" isa first_name; }
answers: 1, total (with concept details) duration: 8 ms