我对GRAKN.AI非常陌生,我想知道在GRAKN的图表中,我是否可以创建一个由"enitity“组成的”实体“。我知道我可以执行以下代码:
table sub entity
has book;
book sub resources datatype string;,但我可以将“图书”作为一个实体与“表”??联系起来吗?
我需要把“书”作为一个复杂的概念而不是简单的资源。
谢谢,
戴维德
发布于 2017-10-24 09:00:54
另一种解决方案是通过一种允许您更明确地定义事物的关系。例如,
要定义一种关系,首先要定义角色,这些角色为事物如何相互关联提供了上下文。例如:
insert
thing-on-top-of-table sub role;
table-with-thing-on-top sub role;然后说明这些角色如何链接到关系和实体:
insert
sits-on sub relation
relates thing-on-top-of-table
relates table-with-thing-on-top;
table plays table-with-thing-on-top;
book plays thing-on-top-of-table;上面的内容基本上就是简单知识库的模式。
现在我们可以添加一些数据。假设某张桌子上有一本书:
insert
$book isa book;
$table isa table;
(thing-on-top-of-table: $book, table-with-thing-on-top: $table) isa sits-on自然,你可以从这里展开东西。例如,您可以通过资源为您的书命名。
侧记:资源与实体
将某物与资源或另一实体相关联的基本经验规则取决于您想要在模型中表示多少信息,以及是否可以由数据文本(例如字符串、Int、Long等)定义一些信息。。。)。
例如,一本书是一个实体,因为它是由多个资源组成的,这些资源有助于识别书。即标题、isbn等。。另一方面,这些资源是简单的数据值。一个标题只不过是一个字符串,所以没有理由让标题成为一个实体,这应该只是一个资源。
发布于 2017-10-24 08:53:07
您可以将模型分为两个book和table,并有一个可以称为belongs之类的关系,并添加您需要的角色,例如book-role和table-role
如果这些概念与层次结构相关,则可以使用继承。
table sub entity
has some property
book sub table
has additional property继承对于分类是有用的,您可以很容易地理解两个子实体是相关的,可以通过查询父实体来检索两个子实体。
match $t isa table;还书,因为它们是表中的子实体。
https://stackoverflow.com/questions/46905934
复制相似问题