我希望显示实体的特定实例的所有数据点。
我理解如何用特定的形式编写查询,但我希望它更笼统、更简洁。
这就是我目前的情况:
match
$t isa technology, has version "v9.5";
$as isa app-server, has database-server $ds, has dot-net-network $dnn, has XXXXXX $x1, has XXXXXX $x2;
$ds isa database-server, has XXXXXX $x3, has XXXXXX $x4;
$r1(container: $t, containee: $as);
$r2(container: $t, containee: $ds);
get; offset 0; limit 30;还有几个实体连接到我的container。
发布于 2019-07-26 14:47:32
通常,在Graql中,我们可以通过在查询中提供较少的约束或将约束更改为更宽松的约束来进行模糊查询。
在您的例子中,我相信您希望专门问一个关于实体实例的问题,这个模式描述了这个实例:$t isa technology, has version "v9.5";。您希望通过一个关系找到它所连接的实体。然后,您希望找到这些连接实体的所有属性,但不指定这些实体根据模式可以拥有的所有类型的属性。
获取相关概念的最通用方法是:
match
$t isa technology, has version "v9.5";
$r($t, $e);
get $e;如果只想要连接的实体:
match
$t isa technology, has version "v9.5";
$r($t, $e);
$e isa entity;
get $e;这是因为所有用户定义的实体都继承自entity。您也可以对relation和attribute做同样的操作,也可以对thing做同样的操作,后者是这三种类型中的超级类型。
获取一个概念的所有属性的完整答案()是使用相同的主体,给出基本类型attribute
match
$t isa technology, has version "v9.5";
$r($t, $e);
$e isa entity, has attribute $a;
get $e, $a;然后,您可以找到两种模式共有的属性,在本例中为两个实例:
match
$t1 isa technology, has version "v9.5";
$e1 isa entity, has attribute $a;
$r1($t1, $e1);
$t2 isa technology, has version "v9.6";
$e2 isa entity, has attribute $e;
$r2($t2, $x2);
get $a;https://stackoverflow.com/questions/57218577
复制相似问题