You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询TypeDB数据库schema中定义的规则并排查推理异常

TypeDB规则查询与传递规则不生效排查

你在schema中定义的传递性层级规则如下:

define rule transitive-hierarchy-rule:
when {
(before: $a, after: $b) isa hierarchy;
(before: $b, after: $c) isa hierarchy;
} then {
(before: $a, after: $c) isa hierarchy;
};

相关官方规则说明:

通过规则定义的事实不会存储在知识图谱中。[...] 只要在schema中定义了对应规则,查询时就会自动生成对应的额外推导事实。
当前版本中,match查询必须使用read事务才能触发推理机制、获取规则推导结果,官方正在后续版本中研发写事务下的推理支持能力。

实际执行现象:在read事务中运行查询match (before: $x, after: $y) isa hierarchy,仅返回2条手动插入的显式记录,未得到预期的第三条传递推导结果:

{ $x iid 0x826e800b8000000000000000 isa task; $y iid 0x826e80048000000000000002 isa task; }
{ $x iid 0x826e800a8000000000000000 isa task; $y iid 0x826e800b8000000000000000 isa task; }

查询Schema中已定义规则的方法

在read事务中执行下面的查询语句,即可拉取库内所有已定义规则的完整信息:

match $rule isa rule;
get $rule;

如果只需要查询指定名称的规则,增加规则名过滤条件即可:

match $rule isa rule, has rule-name "transitive-hierarchy-rule";
get $rule;

返回结果会包含规则的条件体、执行体、启用状态等全部属性,可先确认规则是否被正确写入schema、定义内容是否和预期一致。

传递规则未生效的常见排查方向

  • 确认事务初始化时显式开启了推理参数:所有TypeDB官方驱动默认关闭推理功能,仅使用read事务不会自动触发规则推导,必须在创建事务时传入infer=true的配置项才会启用推理能力,这是最常见的漏配项。
  • 检查hierarchy关系的schema定义:如果hierarchy被标记为抽象关系,或before/after角色未正确绑定task类型作为合法角色玩家,规则会无法匹配到对应数据触发推导。
  • 校验插入的显式关系链路:从返回的iid看,已插入的两条关系为0x826e800b → 0x826e8004...02、0x826e800a → 0x826e800b,链路本身连续通顺,符合规则触发条件,优先检查推理开关配置。

内容的提问来源于stack exchange,提问作者Inspired_Blue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:27:18