"defining-mt" SubL 命令 returns "NIL" 当定义微理论存在时

"defining-mt" SubL command returns "NIL" when defining microtheory exists

我正在尝试为给定的 Cyc 概念找到定义微观理论。对于某些概念 "defining-mt" 当定义微理论存在时,SubL 命令执行 return "NIL"(可以使用 #$definingMt 谓词进行验证)。

例如:

在这种情况下,如何使 "defining-mt" SubL 命令输出 #$BiologyMt?

我正在使用 Research Cyc 4.0q KB。

您遇到了 KB 领先于 API 的情况。在这种特殊情况下,如果您查看查询的理由,您会发现它符合以下规则:

(implies 
  (and 
    (genls ?COLL ?TYPE) 
    (defaultDefiningMtForSpecs ?TYPE ?MT)) 
  (definingMt ?COLL ?MT))

您使用的 SubL 代码执行简单的查找,因此它无法利用该规则。考虑到您正在使用的代码库和知识库,最好的办法是继续使用您已有的查询。