"defining-mt" SubL 命令 returns "NIL" 当定义微理论存在时
"defining-mt" SubL command returns "NIL" when defining microtheory exists
我正在尝试为给定的 Cyc 概念找到定义微观理论。对于某些概念 "defining-mt" 当定义微理论存在时,SubL 命令执行 return "NIL"(可以使用 #$definingMt 谓词进行验证)。
例如:
- subl 代码(定义-mt #$Person)-> NIL
- 循环查询(#$definingMt #$Person ?MT) -> #$BiologyMt
在这种情况下,如何使 "defining-mt" SubL 命令输出 #$BiologyMt?
我正在使用 Research Cyc 4.0q KB。
您遇到了 KB 领先于 API 的情况。在这种特殊情况下,如果您查看查询的理由,您会发现它符合以下规则:
(implies
(and
(genls ?COLL ?TYPE)
(defaultDefiningMtForSpecs ?TYPE ?MT))
(definingMt ?COLL ?MT))
您使用的 SubL 代码执行简单的查找,因此它无法利用该规则。考虑到您正在使用的代码库和知识库,最好的办法是继续使用您已有的查询。
我正在尝试为给定的 Cyc 概念找到定义微观理论。对于某些概念 "defining-mt" 当定义微理论存在时,SubL 命令执行 return "NIL"(可以使用 #$definingMt 谓词进行验证)。
例如:
- subl 代码(定义-mt #$Person)-> NIL
- 循环查询(#$definingMt #$Person ?MT) -> #$BiologyMt
在这种情况下,如何使 "defining-mt" SubL 命令输出 #$BiologyMt?
我正在使用 Research Cyc 4.0q KB。
您遇到了 KB 领先于 API 的情况。在这种特殊情况下,如果您查看查询的理由,您会发现它符合以下规则:
(implies
(and
(genls ?COLL ?TYPE)
(defaultDefiningMtForSpecs ?TYPE ?MT))
(definingMt ?COLL ?MT))
您使用的 SubL 代码执行简单的查找,因此它无法利用该规则。考虑到您正在使用的代码库和知识库,最好的办法是继续使用您已有的查询。